oalg-base-1.1.4.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 HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Structure.Operational

Description

operations on entities by a Multiplicative structure.

Synopsis

Operation

class Opr f x where Source #

right operation of f on x. This class is rather technical, because on this abstract level it is not possible to define the exact behavior of the operation, i.e. for which values f and x the expression x <* f is valid. For a precise definition see for example TotalOpr or OrientedOpr where the behavior can be stated.

Methods

(<*) :: x -> f -> x infixl 5 Source #

right operation.

Instances

Instances details
Oriented x => Opr (ColTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Methods

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

Entity x => Opr (Permutation N) (CSequence x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Opr (Permutation N) [x] Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Methods

(<*) :: [x] -> Permutation N -> [x] Source #

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

Defined in OAlg.Entity.Sequence.Permutation

Entity p => Opr (Permutation N) (Dim x p) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Dim

Methods

(<*) :: Dim x p -> Permutation N -> Dim x p Source #

Ord i => Opr (Permutation i) (Col i x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

Methods

(<*) :: Col i x -> Permutation i -> Col i x Source #

Ord i => Opr (Permutation i) (PSequence i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Methods

(<*) :: PSequence i x -> Permutation i -> PSequence i x Source #

Ord j => Opr (Permutation j) (Row j x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

Methods

(<*) :: Row j x -> Permutation j -> Row j x Source #

class Opl f x where Source #

left operation of f on x. This class is rather technical, because on this abstract level it is not possible to define the exact behavior of the operation, i.e. for which values f and x the expression f *> x is valid. For a precise definition see for example TotalOpl or OrientedOpl where the behavior can be stated.

Methods

(*>) :: f -> x -> x infixr 9 Source #

Instances

Instances details
Oriented x => Opl (RowTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

Methods

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

Total

class (Opr f x, Multiplicative f, Total f, Entity x) => TotalOpr f x Source #

right operation of a Total Multiplicative structure f on x.

Property Let f be a Total Multiplicative structure and x an instance of Entity, then holds:

  1. For all x in x holds: x <* one u == x where u = unit is the singleton element in Point f.
  2. For all x in x and f, g in f holds: x <* f <* g == x <* (f * g).

Note If f is invertible, then it gives rise of a bijection <* f on x with inverse <* invert f.

Instances

Instances details
Entity x => TotalOpr (Permutation N) (CSequence x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Entity x => TotalOpr (Permutation N) [x] Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

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

Defined in OAlg.Entity.Sequence.Permutation

(Oriented x, Entity p) => TotalOpr (Permutation N) (Dim x p) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Dim

(Entity x, Entity i, Ord i) => TotalOpr (Permutation i) (Col i x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

(Entity i, Ord i, Entity x) => TotalOpr (Permutation i) (PSequence i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

(Entity x, Entity j, Ord j) => TotalOpr (Permutation j) (Row j x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Entries

class (Opr f x, Multiplicative f, Total f, Entity x) => TotalOpl f x Source #

left operation of a Total Multiplicative structure f on x.

Property Let f be a Total Multiplicative structure and x an instance of Entity, then holds:

  1. For all x in x holds: one u *> x == x where u = unit is the singleton element in Point f.
  2. For all x in x and f, g in f holds: f *> g *> x == (f * g) *> x.

Note If f is invertible, then it gives rise of a bijection f *> on x with inverse invert f *>.

Oriented

class (Opr f x, Multiplicative f, Oriented x) => OrientedOpr f x Source #

right operation of a Multiplicative structure f on a Oriented structure x.

Property Let f be a Multiplicative and x a Oriented structure, then holds:

  1. For all f in f and x in x holds.

    1. If start x == end f then x <* f is valid and orientation (x <* f) == start f :> end x.
    2. If start x /= end f then x <* f is not valid and its evaluation will end up in a NotApplicable exception.
  2. For all x in x holds: x <* one (start x) == x.
  3. For all x in x and f, g in f with end f == start x, end g == start f holds: x <* f <* g == x <* (f * g).

Note If f is invertible, then it rise of a bijection <* f from all x in x with start x == end f to all y in x with start y == start f. Its inverse is given by <* invert f.

Instances

Instances details
Distributive x => OrientedOpr (ColTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation

class (Opl f x, Multiplicative f, Oriented x) => OrientedOpl f x Source #

left operation of a Multiplicative structure f on a Oriented structure x.

Property Let f be a Multiplicative and x a Oriented structure, and f, x an instance of OrientedOpl, then holds:

  1. For all f in f and x in x holds.

    1. If end x == start f then f *> x is valid and orientation (f *> x) == start x :> end f.
    2. If end x /= start f then f *> x is not valid and its evaluation will end up in a NotApplicable exception.
  2. For all x in x holds: one (end x) *> x== x.
  3. For all x in x and f, g in f with start g == end x, start f == end g holds: f *> g *> x == (f * g) *> x .

Note If f is invertible, then it rise of a bijection f *> from all x in x with end x == start f to all y in x with end y == end f. Its inverse is given by invert f *>.

Instances

Instances details
Distributive x => OrientedOpl (RowTrafo x) (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Transformation