| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
OAlg.Hom.Oriented.Definition
Description
definition of homomorphisms between Oriented structures.
Synopsis
- class (Morphism h, Applicative h, ApplicativePoint h, Transformable (ObjectClass h) Ort) => HomOriented (h :: Type -> Type -> Type)
- class (Morphism h, Applicative h, ApplicativePoint h, Transformable (ObjectClass h) Ort, Disjunctive2 h) => HomOrientedDisjunctive (h :: Type -> Type -> Type)
- omapDisj :: (ApplicativePoint h, Disjunctive2 h) => h x y -> Orientation (Point x) -> Orientation (Point y)
- class (Functorial h, FunctorialPoint h) => FunctorialOriented (h :: Type -> Type -> Type)
- module OAlg.Data.Variant
- class (DualisableG s (->) o Id, DualisableG s (->) o Pnt, Transformable s Ort) => DualisableOriented s (o :: Type -> Type)
- toDualArw :: DualisableOriented s o => q o -> Struct s x -> x -> o x
- toDualPnt :: forall s (o :: Type -> Type) q x. DualisableOriented s o => q o -> Struct s x -> Point x -> Point (o x)
- toDualOrt :: forall s (o :: Type -> Type) q x. DualisableOriented s o => q o -> Struct s x -> Orientation (Point x) -> Orientation (Point (o x))
- toDualOpOrt :: Oriented x => Variant2 'Contravariant (IsoO Ort Op) x (Op x)
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:
Note The above property is equivalent to
. amap h . orientation .=. orientation . omap h
Instances
| HomOriented GLApp Source # | |
Defined in OAlg.Entity.Matrix.GeneralLinearGroup | |
| HomOriented TrApp Source # | |
Defined in OAlg.Entity.Matrix.GeneralLinearGroup | |
| HomOriented h => HomOriented (Inv2 h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| HomOriented h => HomOriented (Path h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| HomOriented h => HomOriented (Id2 h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| TransformableOrt s => HomOriented (Ornt s) Source # | |
Defined in OAlg.Data.Ornt | |
| HomOriented (SliceFactorDrop s) Source # | |
Defined in OAlg.Entity.Slice.Definition | |
| TransformableOrt s => HomOriented (HomEmpty s) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| TransformableOrt s => HomOriented (HomId s) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| (Distributive d, Sliced i d, Conic c) => HomOriented (SliceAdjunction i c d) Source # | |
Defined in OAlg.Entity.Slice.Adjunction | |
| HomOrientedDisjunctive h => HomOriented (Variant2 'Covariant h) Source # | |
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 , then
for all HomOrientedDisjunctive hx, y and h in h x y holds:
If
then holds:variant2h==Contravariant
Note The above property is equivalent to
. orientation . amap h .=. omapDisj h . orientation
Instances
| (CategoryDisjunctive h, HomOrientedDisjunctive h) => HomOrientedDisjunctive (Inv2 h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| HomOrientedDisjunctive h => HomOrientedDisjunctive (Path h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| (Transformable s Ort, HomOrientedDisjunctive h) => HomOrientedDisjunctive (Sub s h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| (DualisableDistributive s o, TransformableGRefl o s, TransformableGRefl Matrix s, TransformableDst s) => HomOrientedDisjunctive (HomCo Matrix s o) Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
| (HomOriented h, DualisableOriented s o) => HomOrientedDisjunctive (HomDisj s o h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
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!
Instances
| FunctorialOriented h => FunctorialOriented (Inv2 h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
| FunctorialOriented (Sub (Dst, SldFr) (HomDisjEmpty Dst Op)) Source # | |
Defined in OAlg.Entity.Slice.Free | |
| FunctorialOriented (Sub (Mlt, SldFr) (HomDisjEmpty Mlt Op)) Source # | |
Defined in OAlg.Entity.Slice.Free | |
| (TransformableGRefl o s, DualisableDistributive s o, TransformableGRefl Matrix s, TransformableDst s) => FunctorialOriented (HomCo Matrix s o) Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
| (HomOriented h, DualisableOriented s o) => FunctorialOriented (HomDisj s o h) Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
module OAlg.Data.Variant
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 , then for all DualisableOriented o sx
and s in holds:Struct s x
where q is any proxy for o.
Note The above property is equivalent to
.orientation . toDualArw q s .=. toDualOrt q s . orientation
Instances
| (TransformableType s, TransformableOrt s, TransformableOp s) => DualisableOriented s Op Source # | |
Defined in OAlg.Hom.Oriented.Definition | |
toDualArw :: DualisableOriented s o => q o -> Struct s x -> x -> o x Source #
the dual arrow given by and induced by
DualisableOriented s o'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 and induced by
DualisableOriented s o.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