oalg-base-3.0.0.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellNone
LanguageHaskell2010

OAlg.Structure.Multiplicative.Definition

Description

multiplicative structures, i.e. structures with a partially defined multiplication (*).

Synopsis

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:

  1. For all p in Point c holds: orientation (one p) == p :> p.
  2. For all f and g in c holds:

    1. if start f == end g then f * g is valid and start (f * g) == start g and end (f * g) == end f.
    2. if start f /= end g then f * g is not valid and its evaluation will end up in a NotMultiplicable exception.
  3. For all f in c holds: one (end f) * f == f and f * one (start f) == f.
  4. For all f, g and h in c with start g == end h and start f == end g holds: (f * g) * h == f * (g * h).
  5. For all f in c holds:

    1. npower f 1 == f.
    2. If f is a endo than npower f 0 == one (start f) and For all n in N holds: npower f (succ n) == f * npower f n.

Such a c will be called a multiplicative structure and an entity f of c will be called factor. The associated factor one p to a p in Point c will be called the one at p.

Note If the types c and Point c are interpreted as sets M 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.

Minimal complete definition

one, (*)

Methods

one :: Point c -> c Source #

the neutral element associated to each point. If there is no ambiguity for one p we will briefly denote it by 1 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

Instances details
Multiplicative N Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point N -> N Source #

(*) :: N -> N -> N Source #

npower :: N -> N -> N Source #

Multiplicative Q Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point Q -> Q Source #

(*) :: Q -> Q -> Q Source #

npower :: Q -> N -> Q Source #

Multiplicative Z Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point Z -> Z Source #

(*) :: Z -> Z -> Z Source #

npower :: Z -> N -> Z Source #

Multiplicative Variant Source # 
Instance details

Defined in OAlg.Data.Variant

Multiplicative N' Source # 
Instance details

Defined in OAlg.Entity.Natural

Methods

one :: Point N' -> N' Source #

(*) :: N' -> N' -> N' Source #

npower :: N' -> N -> N' Source #

Multiplicative W' Source # 
Instance details

Defined in OAlg.Entity.Natural

Methods

one :: Point W' -> W' Source #

(*) :: W' -> W' -> W' Source #

npower :: W' -> N -> W' Source #

Multiplicative Integer Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Multiplicative () Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point () -> () Source #

(*) :: () -> () -> () Source #

npower :: () -> N -> () Source #

Multiplicative Int Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point Int -> Int Source #

(*) :: Int -> Int -> Int Source #

npower :: Int -> N -> Int Source #

Multiplicative c => Multiplicative (Id c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point (Id c) -> Id c Source #

(*) :: Id c -> Id c -> Id c Source #

npower :: Id c -> N -> Id c Source #

Distributive x => Multiplicative (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

one :: Point (Matrix x) -> Matrix x Source #

(*) :: Matrix x -> Matrix x -> Matrix x Source #

npower :: Matrix x -> N -> Matrix x Source #

Galoisian x => Multiplicative (GL2 x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

one :: Point (GL2 x) -> GL2 x Source #

(*) :: GL2 x -> GL2 x -> GL2 x Source #

npower :: GL2 x -> N -> GL2 x Source #

Oriented x => Multiplicative (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

one :: Point (GLT x) -> GLT x Source #

(*) :: GLT x -> GLT x -> GLT x Source #

npower :: GLT x -> N -> GLT x Source #

Oriented x => Multiplicative (ColTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Oriented x => Multiplicative (RowTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

(Show x, Validable x, Eq x, Typeable x) => Multiplicative (ProductSymbol x) Source # 
Instance details

Defined in OAlg.Entity.Product.ProductSymbol

(Entity i, Ord i) => Multiplicative (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Fibred f => Multiplicative (Sheaf f) Source #

'Data.List.(++)' is not commutative!

Instance details

Defined in OAlg.Structure.Fibred.Definition

Methods

one :: Point (Sheaf f) -> Sheaf f Source #

(*) :: Sheaf f -> Sheaf f -> Sheaf f Source #

npower :: Sheaf f -> N -> Sheaf f Source #

Multiplicative c => Multiplicative (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point (Inv c) -> Inv c Source #

(*) :: Inv c -> Inv c -> Inv c Source #

npower :: Inv c -> N -> Inv c Source #

Multiplicative c => Multiplicative (Op c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point (Op c) -> Op c Source #

(*) :: Op c -> Op c -> Op c Source #

npower :: Op c -> N -> Op c Source #

Entity p => Multiplicative (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Oriented q => Multiplicative (Path q) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point (Path q) -> Path q Source #

(*) :: Path q -> Path q -> Path q Source #

npower :: Path q -> N -> Path q Source #

(Oriented x, Typeable p, p ~ Point x) => Multiplicative (Dim x p) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Dim

Methods

one :: Point (Dim x p) -> Dim x p Source #

(*) :: Dim x p -> Dim x p -> Dim x p Source #

npower :: Dim x p -> N -> Dim x p Source #

(Oriented a, Integral r) => Multiplicative (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

one :: Point (Product r a) -> Product r a Source #

(*) :: Product r a -> Product r a -> Product r a Source #

npower :: Product r a -> N -> Product r a Source #

(Semiring r, Commutative r, Multiplicative m, FibredOriented m, Ord m) => Multiplicative (Sum r m) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

one :: Point (Sum r m) -> Sum r m Source #

(*) :: Sum r m -> Sum r m -> Sum r m Source #

npower :: Sum r m -> N -> Sum r m Source #

(Multiplicative x, Sliced i x, Typeable s) => Multiplicative (SliceFactor s i x) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

Methods

one :: Point (SliceFactor s i x) -> SliceFactor s i x Source #

(*) :: SliceFactor s i x -> SliceFactor s i x -> SliceFactor s i x Source #

npower :: SliceFactor s i x -> N -> SliceFactor s i x Source #

(Distributive x, Typeable t, Typeable n) => Multiplicative (ConsecutiveZeroHom t n x) Source # 
Instance details

Defined in OAlg.Limes.Exact.ConsecutiveZero

(Multiplicative a, Typeable t, Typeable n, Typeable m) => Multiplicative (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Methods

one :: Point (DiagramTrafo t n m a) -> DiagramTrafo t n m a Source #

(*) :: DiagramTrafo t n m a -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

npower :: DiagramTrafo t n m a -> N -> DiagramTrafo t n m a Source #

one' :: Multiplicative c => p c -> Point c -> c Source #

the one to a given point. The type p c serves only as proxy and one' is lazy in it.

Note As Point may be a non-injective type family, the type checker needs some times a little bit more information to pic the right one.

isOne :: Multiplicative c => c -> Bool Source #

check for being equal to one.

data Mlt Source #

type representing the class of Multiplicative structures.

Instances

Instances details
TransformableTyp Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TransformableType Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TransformableMlt Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TransformableOrt Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TransformableOp Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Transformable Dst Mlt Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

tau :: Struct Dst x -> Struct Mlt x Source #

Transformable DstX Mlt Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Methods

tau :: Struct DstX x -> Struct Mlt x Source #

Transformable Mlt Ent Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tau :: Struct Mlt x -> Struct Ent x Source #

Transformable Mlt Typ Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tau :: Struct Mlt x -> Struct Typ x Source #

Transformable Mlt Ort Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tau :: Struct Mlt x -> Struct Ort x Source #

Transformable Mlt Type Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tau :: Struct Mlt x -> Struct Type x Source #

Transformable MltX Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Proposition

Methods

tau :: Struct MltX x -> Struct Mlt x Source #

TransformableGRefl Op Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TransformableG Op Mlt Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tauG :: Struct Mlt x -> Struct Mlt (Op x) Source #

(HomMultiplicativeDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => NaturalConic h Cone Mlt p d t n m Source # 
Instance details

Defined in OAlg.Limes.Cone.Conic.Duality

(HomDistributiveDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => NaturalConic h ConeZeroHead Mlt p d t n m Source # 
Instance details

Defined in OAlg.Limes.Cone.ZeroHead.Duality

Conic c => XStandardEligibleConeFactorG c Mlt 'Injective d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Conic c => XStandardEligibleConeFactorG c Mlt 'Projective d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

(Conic c, Diagrammatic d) => XStandardEligibleConeG c Mlt p d 'Discrete n m (Matrix Z) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

TransformableGRefl Op (Mlt, Sld i) Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

TransformableG Op (Mlt, t) Mlt Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tauG :: Struct (Mlt, t) x -> Struct Mlt (Op x) Source #

(HomMultiplicativeDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => NaturalTransformable h (->) (SDualBi (ConeG Cone Mlt p d t n m)) (SDualBi (ConeG Cone Mlt p d t n m)) Source # 
Instance details

Defined in OAlg.Limes.Cone.Conic.Duality

(HomDistributiveDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => NaturalTransformable h (->) (SDualBi (ConeG ConeZeroHead Mlt p d t n m)) (SDualBi (ConeG Cone Mlt p d t n m)) Source # 
Instance details

Defined in OAlg.Limes.Cone.ZeroHead.Duality

HomOrientedSlicedFree (Inv2 (HomFree Mlt)) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

Transformable (Alg k) Mlt Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

Methods

tau :: Struct (Alg k) x -> Struct Mlt x Source #

(HomMultiplicativeDisjunctive h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p), t ~ Dual (Dual t)) => ApplicativeG (SDualBi (ConeG Cone Mlt p d t n m)) h (->) Source # 
Instance details

Defined in OAlg.Limes.Cone.Conic.Duality

Methods

amapG :: h x y -> SDualBi (ConeG Cone Mlt p d t n m) x -> SDualBi (ConeG Cone Mlt p d t n m) y Source #

(HomMultiplicativeDisjunctive h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => ApplicativeG (SDualBi (Cone Mlt p d t n m)) h (->) Source # 
Instance details

Defined in OAlg.Limes.Cone.Duality

Methods

amapG :: h x y -> SDualBi (Cone Mlt p d t n m) x -> SDualBi (Cone Mlt p d t n m) y Source #

(HomMultiplicativeDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p), t ~ Dual (Dual t)) => FunctorialG (SDualBi (ConeG Cone Mlt p d t n m)) h (->) Source # 
Instance details

Defined in OAlg.Limes.Cone.Conic.Duality

(HomMultiplicativeDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => FunctorialG (SDualBi (Cone Mlt p d t n m)) h (->) Source # 
Instance details

Defined in OAlg.Limes.Cone.Duality

p ~ Dual (Dual p) => ApplicativeG (SDualBi (LiftableFree p)) (Inv2 (HomFree Mlt)) (->) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

Methods

amapG :: Inv2 (HomFree Mlt) x y -> SDualBi (LiftableFree p) x -> SDualBi (LiftableFree p) y Source #

p ~ Dual (Dual p) => FunctorialG (SDualBi (LiftableFree p)) (Inv2 (HomFree Mlt)) (->) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

FunctorialOriented (Sub (Mlt, SldFr) (HomDisjEmpty Mlt Op)) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

TransformableOp (Mlt, Sld i) Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

Transformable s Mlt => Transformable (s, SldFr) Mlt Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

Methods

tau :: Struct (s, SldFr) x -> Struct Mlt x Source #

Transformable s Mlt => Transformable (s, Sld i) Mlt Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

Methods

tau :: Struct (s, Sld i) x -> Struct Mlt x Source #

TransformableObjectClass (Mlt, SldFr) (HomDisj Mlt Op (HomEmpty Mlt)) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

(Entity p, Diagrammatic d, XStandard p, XStandard (d t n m (Orientation p))) => XStandard (Cone Mlt 'Injective d t n m (Orientation p)) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

Methods

xStandard :: X (Cone Mlt 'Injective d t n m (Orientation p)) Source #

(Entity p, Diagrammatic d, XStandard p, XStandard (d t n m (Orientation p))) => XStandard (Cone Mlt 'Projective d t n m (Orientation p)) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

Methods

xStandard :: X (Cone Mlt 'Projective d t n m (Orientation p)) Source #

type Hom Mlt h Source # 
Instance details

Defined in OAlg.Hom.Multiplicative

type HomD Mlt h Source # 
Instance details

Defined in OAlg.Hom.Multiplicative

type Structure Mlt x Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

class (TransformableOrt s, Transformable s Mlt) => TransformableMlt s Source #

helper class to avoid undecidable instances.

Transposable

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, start g == end g and start f == end g holds: f * g == g * f.

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:

  1. start g == end f and end g == start f.
  2. f * g = one (end f) and g * f == one (start f).

Properties For all f in a Invertible structure c holds:

  1. isInvertible f is equivalent to solvable (tryToInvert f).
  2. if isInvertible f holds, then invert f is valid and it is the multiplicative inverse of f. Furthermore invert f == solve (tryToInvert m).
  3. if not isInvertible f holds, then invert f is not valid and evaluating it will end up in a NotInvertible-exception.

Note

  1. It is not required that every factor has a multiplicative inverse (see Cayleyan for such structures).
  2. This structure is intended for multiplicative structures having a known algorithm to evaluate for every invertible f its inverse.

Minimal complete definition

tryToInvert

Methods

tryToInvert :: c -> Solver c Source #

solver to evaluate the multiplicative inverse - if it exists.

invert :: c -> c Source #

the inverse.

isInvertible :: c -> Bool Source #

check for being invertible.

zpower :: c -> Z -> c Source #

if 0 <= z then n times the multiplication for the given factor else prj z times the multiplication of the inverse of the given factor.

Instances

Instances details
Invertible N Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Invertible Q Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Invertible Z Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Invertible Integer Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Invertible () Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tryToInvert :: () -> Solver () Source #

invert :: () -> () Source #

isInvertible :: () -> Bool Source #

zpower :: () -> Z -> () Source #

Invertible Int Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Galoisian x => Invertible (GL2 x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

tryToInvert :: GL2 x -> Solver (GL2 x) Source #

invert :: GL2 x -> GL2 x Source #

isInvertible :: GL2 x -> Bool Source #

zpower :: GL2 x -> Z -> GL2 x Source #

Oriented x => Invertible (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

tryToInvert :: GLT x -> Solver (GLT x) Source #

invert :: GLT x -> GLT x Source #

isInvertible :: GLT x -> Bool Source #

zpower :: GLT x -> Z -> GLT x Source #

Oriented x => Invertible (ColTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Oriented x => Invertible (RowTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

(Entity i, Ord i) => Invertible (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Multiplicative c => Invertible (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tryToInvert :: Inv c -> Solver (Inv c) Source #

invert :: Inv c -> Inv c Source #

isInvertible :: Inv c -> Bool Source #

zpower :: Inv c -> Z -> Inv c Source #

Invertible c => Invertible (Op c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tryToInvert :: Op c -> Solver (Op c) Source #

invert :: Op c -> Op c Source #

isInvertible :: Op c -> Bool Source #

zpower :: Op c -> Z -> Op c Source #

Entity p => Invertible (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

(Oriented a, Integral r, Ring r) => Invertible (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

tryToInvert :: Product r a -> Solver (Product r a) Source #

invert :: Product r a -> Product r a Source #

isInvertible :: Product r a -> Bool Source #

zpower :: Product r a -> Z -> Product r a Source #

data Inv c Source #

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 Inv f f' be in Inv c where c is a Multiplicative structure, then holds:

  1. orientation f' == opposite (orientation f).
  2. f' * f == one (start f).
  3. f * f' == one (end f).

Note The canonical inclusion is obviously not injective on the set of all values of type Inv c to c. 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

Instances details
Show c => Show (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

showsPrec :: Int -> Inv c -> ShowS #

show :: Inv c -> String #

showList :: [Inv c] -> ShowS #

Eq c => Eq (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

(==) :: Inv c -> Inv c -> Bool #

(/=) :: Inv c -> Inv c -> Bool #

TransposableMultiplicative c => Transposable (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

transpose :: Inv c -> Inv c Source #

Multiplicative c => Validable (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

valid :: Inv c -> Statement Source #

Multiplicative c => Exponential (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Exponential

Associated Types

type Exponent (Inv c) 
Instance details

Defined in OAlg.Structure.Exponential

type Exponent (Inv c) = Z

Methods

(^) :: Inv c -> Exponent (Inv c) -> Inv c Source #

Multiplicative c => Cayleyan (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Multiplicative c => Invertible (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

tryToInvert :: Inv c -> Solver (Inv c) Source #

invert :: Inv c -> Inv c Source #

isInvertible :: Inv c -> Bool Source #

zpower :: Inv c -> Z -> Inv c Source #

Multiplicative c => Multiplicative (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

one :: Point (Inv c) -> Inv c Source #

(*) :: Inv c -> Inv c -> Inv c Source #

npower :: Inv c -> N -> Inv c Source #

TransposableMultiplicative c => TransposableMultiplicative (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Multiplicative c => Oriented (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

orientation :: Inv c -> Orientation (Point (Inv c)) Source #

start :: Inv c -> Point (Inv c) Source #

end :: Inv c -> Point (Inv c) Source #

TransposableMultiplicative c => TransposableOriented (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

EqPoint c => EqPoint (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

ShowPoint c => ShowPoint (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

TypeablePoint c => TypeablePoint (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

ValidablePoint c => ValidablePoint (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Embeddable (Inv c) c Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Methods

inj :: Inv c -> c Source #

type Exponent (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Exponential

type Exponent (Inv c) = Z
type Point (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

type Point (Inv c) = Point c

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

  1. If the type Point c is singleton, then the mathematical interpretation of c is a group.
  2. 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).
  3. Usually in mathematics such a structure is called a groupoid.

Instances

Instances details
Cayleyan () Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Galoisian x => Cayleyan (GL2 x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Oriented x => Cayleyan (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Oriented x => Cayleyan (ColTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Oriented x => Cayleyan (RowTrafo x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

(Entity i, Ord i) => Cayleyan (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Multiplicative c => Cayleyan (Inv c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Cayleyan c => Cayleyan (Op c) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

Entity p => Cayleyan (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Multiplicative.Definition

(Oriented a, Integral r, Ring r) => Cayleyan (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

X

xosPathAt :: forall c (s :: Site). 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 :: forall c (s :: Site). Multiplicative c => XOrtSite s c -> N -> X (Path c) Source #

random variable of paths with the given length.

xosXOrtSitePath :: forall c (s :: Site). Multiplicative c => XOrtSite s c -> N -> XOrtSite s (Path c) Source #

the induced random variable for paths.