Copyright | (c) Erich Gut |
---|---|
License | BSD3 |
Maintainer | zerich.gut@gmail.com |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
p
in
holds:Point
c
.orientation
(one
p)==
p:>
p - For all
f
inc
holds:
andone
(end
f)*
f==
ff
.*
one
(start
f)==
f - For all
f
,g
andh
inc
with
andstart
g ==end
h
holds:start
f ==end
g(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
.
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 toisInvertible
f
.solvable
(tryToInvert
f)- if
holds, thenisInvertible
f
isinvert
fvalid
and it is the multiplicative inverse off
. Furthermore
.invert
f==
solve
(tryToInvert
m) - if
not
holds, thenisInvertible
f
is notinvert
fvalid
and evaluating it will end up in aNotInvertible
-exception.
Note
- It is not required that every factor has a multiplicative inverse (see
Cayleyan
for such structures). - This structure is intended for multiplicative structures having a
known algorithm to evaluate for every invertible
f
its inverse.
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
.
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 ofPoint
cc
is 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 # | |