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.Distributive.Definition

Description

distributive structures, i.e. multiplicative structures with a suitable additive structure.

Synopsis

Distributive

class (FibredOriented d, Additive d, Multiplicative d) => Distributive d Source #

FibredOriented structures equipped with an Additive and Multiplicative structure satisfying the laws of distributivity.

Properties Let d be a Distributive structure, then holds:

  1. For all g in d and r in Root d with end g == start r holds: zero r * g == zero r' where r' == start g :> end r.
  2. For all g, a and b in d with root a == root b and start a == end g holds: (a + b) * g == a*g + b*g.
  3. For all f in d and r in Root d with start f == end r holds: f * zero r == zero r' where r' = start r :> end f.
  4. For all f, a and b in d with root a == root b and start f == end a holds: f*(a + b) == f*a + f*b.

Note If d is interpreted as a small category C then it is usually called preadditive. If d is also Abelian then C is also usually called abelian.

Instances

Instances details
Distributive N Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive Q Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive Z Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive N' Source # 
Instance details

Defined in OAlg.Entity.Natural

Distributive W' Source # 
Instance details

Defined in OAlg.Entity.Natural

Distributive Integer Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive () Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive Int Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Distributive d => Distributive (Id d) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

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

Defined in OAlg.Entity.Matrix.Definition

Distributive d => Distributive (Op d) Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

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

Defined in OAlg.Structure.Distributive.Definition

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

Defined in OAlg.Entity.Sum.Definition

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

Defined in OAlg.Limes.Exact.ConsecutiveZero

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

Defined in OAlg.Entity.Diagram.Transformation

data Dst Source #

type representing the class of Distributive structures.

Instances

Instances details
TransformableAdd Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableTyp Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableType Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableDst Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableFbr Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableFbrOrt Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableMlt Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableOrt Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableOp Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Transformable Dst Ent Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Add Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Typ Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Fbr Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst FbrOrt Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Mlt Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Ort Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable Dst Type Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

Transformable DstX Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

Methods

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

TransformableGRefl Matrix Dst Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

TransformableGRefl Op Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableG Matrix Dst Dst Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Methods

tauG :: Struct Dst x -> Struct Dst (Matrix x) Source #

TransformableG Op Dst Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

Methods

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

NaturalDiagrammaticFree Dst Diagram n m Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

NaturalDiagrammaticFree Dst DiagramFree n m Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

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

Defined in OAlg.Limes.Cone.Conic.Duality

Attestable k => NaturalDiagrammaticFree Dst (SliceDiagram (Free k)) N2 N1 Source # 
Instance details

Defined in OAlg.Entity.Slice.Adjunction

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

Defined in OAlg.Entity.Slice.Sliced

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

Defined in OAlg.Structure.Distributive.Definition

Methods

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

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

Defined in OAlg.Limes.Cone.Conic.Duality

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

Defined in OAlg.Entity.Slice.Free

Transformable (Alg k) Dst Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

Methods

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

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

Defined in OAlg.Limes.Cone.Conic.Duality

Methods

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

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

Defined in OAlg.Limes.Cone.Duality

Methods

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

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

Defined in OAlg.Limes.Cone.Conic.Duality

(HomDistributiveDisjunctive h, FunctorialOriented h, NaturalDiagrammaticBi h d t n m, p ~ Dual (Dual p)) => FunctorialG (SDualBi (Cone Dst 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 Dst)) (->) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

Methods

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

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

Defined in OAlg.Entity.Slice.Free

Attestable k => HomSlicedOriented (Free k) (Sub (Dst, SldFr) (HomDisjEmpty Dst Op)) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

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

Defined in OAlg.Entity.Slice.Free

TransformableOp (Dst, Sld i) Source # 
Instance details

Defined in OAlg.Entity.Slice.Sliced

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

Defined in OAlg.Entity.Slice.Free

Methods

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

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

Defined in OAlg.Entity.Slice.Sliced

Methods

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

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

Defined in OAlg.Entity.Slice.Free

(Entity p, t ~ 'Parallel 'RightToLeft, n ~ N2, Diagrammatic d, XStandard p, XStandard (d t n m (Orientation p))) => XStandard (Cone Dst 'Injective d t n m (Orientation p)) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

Methods

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

(Entity p, t ~ 'Parallel 'LeftToRight, n ~ N2, Diagrammatic d, XStandard p, XStandard (d t n m (Orientation p))) => XStandard (Cone Dst 'Projective d t n m (Orientation p)) Source # 
Instance details

Defined in OAlg.Limes.Cone.Definition

Methods

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

type Hom Dst h Source # 
Instance details

Defined in OAlg.Hom.Distributive

type HomD Dst h Source # 
Instance details

Defined in OAlg.Hom.Distributive

type Structure Dst x Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

class (TransformableFbrOrt s, TransformableMlt s, TransformableAdd s, Transformable s Dst) => TransformableDst s Source #

helper class to avoid undecidable instances.

Instances

Instances details
TransformableDst Dst Source # 
Instance details

Defined in OAlg.Structure.Distributive.Definition

TransformableDst DstX Source # 
Instance details

Defined in OAlg.Structure.Distributive.Proposition

TransformableDst (Alg k) Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

TransformableDst s => TransformableDst (s, SldFr) Source # 
Instance details

Defined in OAlg.Entity.Slice.Free

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

Defined in OAlg.Entity.Slice.Sliced

Transposable

class (TransposableMultiplicative d, Distributive d) => TransposableDistributive d Source #

transposable distributive structures.

Property Let d be a TransposableDistributive structure, then holds:

  1. For all r in Root d holds: transpose (zero r) == zero (transpose r)
  2. For all a, b in d with root a == root b holds: transpose (a + b) == transpose a + transpose b.