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.Hom.Oriented.Definition

Description

definition of homomorphisms between Oriented structures.

Synopsis

Covariant

class (Morphism h, Applicative h, ApplicativePoint h, Transformable (ObjectClass h) Ort) => HomOriented (h :: Type -> Type -> Type) Source #

covariant family of homomorphisms between Oriented structures.

Property Let h be an instance of HomOriented, then for all a, b and h in h a b holds:

  1. start . amap h .=. pmap h . start.
  2. end . amap h .=. pmap h . end.

Note The above property is equivalent to amap h . orientation .=. orientation . omap h.

Instances

Instances details
HomOriented GLApp Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

HomOriented TrApp Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

HomOriented h => HomOriented (Inv2 h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

HomOriented h => HomOriented (Path h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

HomOriented h => HomOriented (Id2 h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

TransformableOrt s => HomOriented (Ornt s) Source # 
Instance details

Defined in OAlg.Data.Ornt

HomOriented (SliceFactorDrop s) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

TransformableOrt s => HomOriented (HomEmpty s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

TransformableOrt s => HomOriented (HomId s) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

(Distributive d, Sliced i d, Conic c) => HomOriented (SliceAdjunction i c d) Source # 
Instance details

Defined in OAlg.Entity.Slice.Adjunction

HomOrientedDisjunctive h => HomOriented (Variant2 'Covariant h) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Disjunctive

class (Morphism h, Applicative h, ApplicativePoint h, Transformable (ObjectClass h) Ort, Disjunctive2 h) => HomOrientedDisjunctive (h :: Type -> Type -> Type) Source #

disjunctive family of homomorphism between Oriented structures.

Properties Let HomOrientedDisjunctive h, then for all x, y and h in h x y holds:

  1. If variant2 h == Covariant then holds:

    1. start . amap h .=. pmap h . start.
    2. end . amap h .=. pmap h . end.
  2. If variant2 h == Contravariant then holds:

    1. start . amap h .=. pmap h . end.
    2. end ',' amap h .=. pmap h . start.

Note The above property is equivalent to orientation . amap h .=. omapDisj h . orientation.

omapDisj :: (ApplicativePoint h, Disjunctive2 h) => h x y -> Orientation (Point x) -> Orientation (Point y) Source #

induced application respecting the variant by applying opposite for Contravariant cases.

Applicative

class (Functorial h, FunctorialPoint h) => FunctorialOriented (h :: Type -> Type -> Type) Source #

functorial morphismsm, i.e. Functorial and FunctorialPoint.

Note It's not mandatory being an homomorphism!

Duality

class (DualisableG s (->) o Id, DualisableG s (->) o Pnt, Transformable s Ort) => DualisableOriented s (o :: Type -> Type) Source #

duality according to o on Oriented structures.

Properties Let DualisableOriented o s, then for all x and s in Struct s x holds:

  1. start . toDualArw q s .=. toDualPnt q s . end.
  2. end . toDualArw q s .=. toDualPnt q s . start.

where q is any proxy for o.

Note The above property is equivalent to orientation . toDualArw q s .=. toDualOrt q s . orientation.

Instances

Instances details
(TransformableType s, TransformableOrt s, TransformableOp s) => DualisableOriented s Op Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

toDualArw :: DualisableOriented s o => q o -> Struct s x -> x -> o x Source #

the dual arrow given by DualisableOriented s o and induced by 'DualisableG s (->) o Id.

toDualPnt :: forall s (o :: Type -> Type) q x. DualisableOriented s o => q o -> Struct s x -> Point x -> Point (o x) Source #

the dual point given by DualisableOriented s o and induced by DualisableG s (->) o Pnt.

toDualOrt :: forall s (o :: Type -> Type) q x. DualisableOriented s o => q o -> Struct s x -> Orientation (Point x) -> Orientation (Point (o x)) Source #

the induced dual orientation.

Iso

toDualOpOrt :: Oriented x => Variant2 'Contravariant (IsoO Ort Op) x (Op x) Source #

the canonical Contravariant isomorphism on Oriented structures between x and Op x.