| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
OAlg.Structure.Multiplicative.Definition
Description
multiplicative structures, i.e. structures with a partially defined multiplication (.*)
Synopsis
- class Oriented c => Multiplicative c where
- one' :: Multiplicative c => p c -> Point c -> c
- isOne :: Multiplicative c => c -> Bool
- data Mlt
- class (ForgetfulOrt s, Transformable s Mlt) => ForgetfulMlt s
- class (TransposableOriented c, Multiplicative c) => TransposableMultiplicative c
- class Multiplicative c => Commutative c
- class Multiplicative c => Invertible c where
- tryToInvert :: c -> Solver c
- invert :: c -> c
- isInvertible :: c -> Bool
- zpower :: c -> Z -> c
- data Inv c = Inv c c
- class Invertible c => Cayleyan c
- xosPathAt :: Multiplicative c => XOrtSite s c -> N -> Point c -> X (Path c)
- xosPath :: Multiplicative c => XOrtSite s c -> N -> X (Path c)
- xosXOrtSitePath :: Multiplicative c => XOrtSite s c -> N -> XOrtSite s (Path c)
Multiplicative
class Oriented c => Multiplicative c where Source #
Oriented structures with a partially defined multiplication and having
one as the neutral element of the multiplication. An entity of a
Multiplicative structure will be called a factor.
Properties Let c be a type instance of the class Multiplicative, then
holds:
- For all
pinholds:Pointc.orientation(onep)==p:>p - For all
fincholds:andone(endf)*f==ff.*one(startf)==f - For all
f,gandhincwithandstartg ==endhholds:startf ==endg(f.*g)*h==f*(g*h)
Such a c will be called a multiplicative structure and an entity f of
c will be called factor. The associated factor to a one pp in
will be called the one at Point cp.
Note If the types c and are interpreted as sets
Point cM and O and as a partially defined function from *M x M -> M then
this forms a small category with objects in O and morphisms in M.
Methods
the neutral element associated to each point. If there is no ambiguity
for we will briefly denote it by one p1 r or just 1.
(*) :: c -> c -> c infixl 7 Source #
the multiplication of two factors.
npower :: c -> N -> c Source #
n times the multiplication of a given factor f.
Instances
one' :: Multiplicative c => p c -> Point c -> c Source #
type representing the class of Multiplicative structures.
Instances
class (ForgetfulOrt s, Transformable s Mlt) => ForgetfulMlt s Source #
transformable to Multiplicative structure.
Instances
| ForgetfulMlt Dst Source # | |
Defined in OAlg.Structure.Distributive.Definition | |
| ForgetfulMlt Mlt Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| ForgetfulMlt (Alg k) Source # | |
Defined in OAlg.Structure.Algebraic.Definition | |
Transposable
class (TransposableOriented c, Multiplicative c) => TransposableMultiplicative c Source #
transposable Multiplicative structures.
Property Let c be a TransposableMultiplicative structure, then holds:
Instances
| TransposableMultiplicative N Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| TransposableMultiplicative Q Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| TransposableMultiplicative Z Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| (Distributive x, TransposableDistributive x) => TransposableMultiplicative (Matrix x) Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
| (Galoisian x, TransposableDistributive x) => TransposableMultiplicative (GL2 x) Source # | |
Defined in OAlg.Entity.Matrix.GeneralLinearGroup | |
| TransposableMultiplicative c => TransposableMultiplicative (Inv c) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Entity p => TransposableMultiplicative (Orientation p) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
Commutative
class Multiplicative c => Commutative c Source #
commutative multiplicative structures.
Property Let c be a Commutative structure, then holds: For all f and g in c
with , start f == end f and start g == end g holds:
start f == end gf .* g == g * f
Instances
| Commutative N Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative Q Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative Z Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative N' Source # | |
Defined in OAlg.Entity.Natural | |
| Commutative W' Source # | |
Defined in OAlg.Entity.Natural | |
| Commutative Integer Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative () Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative Int Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Commutative c => Commutative (Op c) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
Invertible
class Multiplicative c => Invertible c where Source #
multiplicative structures having a multiplicative inverse.
Definition Let f and g be two factors in a Multiplicative structure _c
then we call g a multiplicative inverse to f (or short inverse) if and
only if the following hold:
Properties For all f in a Invertible structure c holds:
is equivalent toisInvertiblef.solvable(tryToInvertf)- if
holds, thenisInvertiblefisinvertfvalidand it is the multiplicative inverse off. Furthermore.invertf==solve(tryToInvertm) - if
notholds, thenisInvertiblefis notinvertfvalidand evaluating it will end up in aNotInvertible-exception.
Note
- It is not required that every factor has a multiplicative inverse (see
Cayleyanfor such structures). - This structure is intended for multiplicative structures having a
known algorithm to evaluate for every invertible
fits inverse.
Minimal complete definition
Methods
tryToInvert :: c -> Solver c Source #
solver to evaluate the multiplicative inverse - if it exists.
the inverse.
isInvertible :: c -> Bool Source #
check for being invertible.
Instances
invertible factors within a Multiplicative structures c, which forms a sub
Multiplicative structure on c, given by the canonical inclusion inj which is
given by \.Inv f _ -> f
Property Let be in Inv f f' where Inv cc is a Multiplicative
structure, then holds:
Note The canonical inclusion is obviously not injective on the set of all values
of type to Inv cc. But restricted to the valid ones it is injective,
because the inverses of a f in c are uniquely determined by f.
Constructors
| Inv c c |
Instances
Cayleyan
class Invertible c => Cayleyan c Source #
Invertible structures where every element is invertible.
Property Let c be a Cayleyan structure, then holds: For all
f in c holds: .isInvertible f == True
Note
- If the type
is singleton, then the mathematical interpretation ofPointccis a group. - The name of this structures is given by Arthur Cayley who introduced the concept (and the name) of an abstract group in 1854 (https://en.wikipedia.org/wiki/Arthur_Cayley).
- Usually in mathematics such a structure is called a groupoid.
Instances
| Cayleyan () Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Cayleyan c => Cayleyan (Op c) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Galoisian x => Cayleyan (GL2 x) Source # | |
Defined in OAlg.Entity.Matrix.GeneralLinearGroup | |
| Oriented x => Cayleyan (GLT x) Source # | |
Defined in OAlg.Entity.Matrix.GeneralLinearGroup | |
| Oriented x => Cayleyan (ColTrafo x) Source # | |
Defined in OAlg.Entity.Matrix.Transformation | |
| Oriented a => Cayleyan (RowTrafo a) Source # | |
Defined in OAlg.Entity.Matrix.Transformation | |
| (Entity i, Ord i) => Cayleyan (Permutation i) Source # | |
Defined in OAlg.Entity.Sequence.Permutation | |
| Multiplicative c => Cayleyan (Inv c) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| Entity p => Cayleyan (Orientation p) Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| (Oriented a, Integral r, Ring r) => Cayleyan (Product r a) Source # | |
Defined in OAlg.Entity.Product.Definition | |
X
xosPathAt :: Multiplicative c => XOrtSite s c -> N -> Point c -> X (Path c) Source #
random variable of paths at the given point and the given length (see xosPathMaxAt and as
c is Multiplicative, the underlying random variable for factors for a given point is
not empty).
xosPath :: Multiplicative c => XOrtSite s c -> N -> X (Path c) Source #
random variable of paths with the given length.
xosXOrtSitePath :: Multiplicative c => XOrtSite s c -> N -> XOrtSite s (Path c) Source #
the induced random variable for paths.
Orphan instances
| Multiplicative c => Projectible c (Path c) Source # | |