spire.algebra.partial

Type members

Classlikes

trait Groupoid[A] extends Semigroupoid[A]

A groupoid is a semigroupoid where inverse are defined for all elements, and thus left and right identity elements such that:

A groupoid is a semigroupoid where inverse are defined for all elements, and thus left and right identity elements such that:

 (i) (leftId(g) |+|? g).get === g
 (ii) (g |+|? rightId(g)).get === g
(iii) `a.inverse |+|? a` and `a |+|? a.inverse` are always defined
 (iv) if `a |+|? b`, then `((a |+|? b).get |+|? b.inverse).get === a` and
     `((a.inverse |+|? a).get |+|? b) === b`
Companion
object
Companion
class
trait LeftPartialAction[P, G]

A left partial action of a semigroupoid G on P is the implementation of a method partialActl(g, p), or g ?|+|> p returning Opt[P], such that:

A left partial action of a semigroupoid G on P is the implementation of a method partialActl(g, p), or g ?|+|> p returning Opt[P], such that:

1. for all `g`, `h` in `G`, `p` in `P` such that `g |+|? h` and `h ?|+|> p` are defined,
   `((g |+|? h).get ?|+|> p).get === (g ?|+|> (h ?|+|> p).get).get` with all operations defined.

In addition, if `G` is a partial monoid, the following relation holds:

2. for all `g` in `G` and `p` in `P` such that `g ?|+|> p` is defined:
   `(g.rightId ?|+|> p).get === p`, the operation `?|+|>` being defined.
Companion
object
Companion
class
trait PartialAction[P, G] extends LeftPartialAction[P, G] with RightPartialAction[P, G]

A partial action is the combination of left and right partial actions, providing:

A partial action is the combination of left and right partial actions, providing:

- a method `partialActl(g, p)`, or `g ?|+|> p` returning `Opt[P]`, such that:

1. for all `g`, `h` in `G`, `p` in `P` such that `g |+|? h` and `h ?|+|> p` are defined,

`((g |+|? h).get ?|+|> p).get === (g ?|+|> (h ?|+|> p).get).get` with all operations defined.

- a method `partialActr(p, g)`, or `p <|+|? g` returning `Opt[P]`, such that:

2. for all `g`, `h` in `G`, `p` in `P` such that `g |+|? h` and `p <|+|? g` are defined,

`(p <|+|? (g |+|? h).get).get === ((p <|+|? g).get |+|? h).get`, and all operations are defined.

In addition, if `G` is a groupoid, the following relations holds:

3. for all `g` in `G` and `p` in `P` such that `g ?|+|> p` is defined:

`(g.rightId ?|+|> p).get === p`, the operation `?|+|>` being defined.

4. for all `g` in `G` and `p` in `P` such that `p <|+|? g` is defined:

`(p <|+|? g.leftId).get === p`, the operation `<|+|?` being defined.

5. for all `g` in `G` and `p` in `P` such that `g ?|+|> p` is defined:

`(g ?|+|> p).get === (p <|+|? g.inverse).get`
Companion
object
Companion
class
trait RightPartialAction[P, G]

A right partial action of a semigroupoid G on P is the implementation of a method partialActr(p, g), or p <|+|? g returning Opt[P], such that:

A right partial action of a semigroupoid G on P is the implementation of a method partialActr(p, g), or p <|+|? g returning Opt[P], such that:

1. for all `g`, `h` in `G`, `p` in `P` such that `g |+|? h` and `p <|+|? g` are defined,
 `(p <|+|? (g |+|? h).get).get === ((p <|+|? g).get |+|? h).get`, and all operations are defined.

In addition, if `G` is a partial monoid, the following relation holds:

2. for all `g` in `G` and `p` in `P` such that `p <|+|? g` is defined:
 `(p <|+|? g.leftId).get === p`, the operation `<|+|?` being defined.
Companion
object
Companion
class
trait Semigroupoid[A]

A semigroupoid is any set A with a partial binary associative operation (partialOp), which is associative in the following sense: if f,g,h are elements of the semigroupoid such that either:

A semigroupoid is any set A with a partial binary associative operation (partialOp), which is associative in the following sense: if f,g,h are elements of the semigroupoid such that either:

(i) f |+|? g is defined and g |+|? h is defined
(ii) f |+|? g is defined and (f |+|? g).get |+|? h is defined
(iii) g |+|? h is defined and f |+|? (g |+|? h).get is defined

then all of f |+|? g, g |+|? h, (f |+|? g).get |+|? h, f |+|? (g |+|? h).get are defined and
((f |+|? g).get |+|?  h).get = (f |+|? (g |+|? h).get).get
Companion
object