| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
OAlg.Category.SDuality
Description
functor for dualisable parameterized types over structured types.
Synopsis
- newtype SVal (d :: Type -> Type) x = SVal (d x)
- smap :: forall d r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y. ApplicativeG (SVal d) (SHom r s o h) (->) => SHom r s o h x y -> d x -> d y
- newtype SDualBi (d :: Type -> Type) x = SDualBi (Either1 (Dual1 d) d x)
- smapBi :: forall (h :: Type -> Type -> Type) (d :: Type -> Type) r (o :: Type -> Type) s x y. (Morphism h, ApplicativeG d h (->), ApplicativeG (Dual1 d) h (->), DualisableGBi r (->) o d, Transformable s r) => SHom r s o h x y -> SDualBi d x -> SDualBi d y
- vmapBi :: Disjunctive2 h => (Variant2 'Covariant h x y -> d x -> d y) -> (Variant2 'Covariant h x y -> Dual1 d x -> Dual1 d y) -> (Variant2 'Contravariant h x y -> d x -> Dual1 d y) -> (Variant2 'Contravariant h x y -> Dual1 d x -> d y) -> h x y -> SDualBi d x -> SDualBi d y
- class Show (Dual1 d x) => ShowDual1 (d :: k -> Type) (x :: k)
- class Eq (Dual1 d x) => EqDual1 (d :: k -> Type) (x :: k)
- class Validable (Dual1 d x) => ValidableDual1 (d :: Type -> Type) x
- data SHom r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y
- sCov :: forall h s x y r (o :: Type -> Type). (Morphism h, Transformable (ObjectClass h) s) => h x y -> Variant2 'Covariant (SHom r s o h) x y
- sForget :: forall (h :: Type -> Type -> Type) t s r (o :: Type -> Type) x y. (Morphism h, Transformable (ObjectClass h) t, Transformable s t) => SHom r s o h x y -> SHom r t o h x y
- sToDual :: forall o s x r (h :: Type -> Type -> Type). Transformable1 o s => Struct s x -> Variant2 'Contravariant (SHom r s o h) x (o x)
- sToDual' :: forall o s q (h :: Type -> Type -> Type) x r. Transformable1 o s => q o h -> Struct s x -> Variant2 'Contravariant (SHom r s o h) x (o x)
- sFromDual :: forall o s x r (h :: Type -> Type -> Type). Transformable1 o s => Struct s x -> Variant2 'Contravariant (SHom r s o h) (o x) x
- sFromDual' :: forall o s q (h :: Type -> Type -> Type) x r. Transformable1 o s => q o h -> Struct s x -> Variant2 'Contravariant (SHom r s o h) (o x) x
- data SMorphism r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y where
- SCov :: forall (h :: Type -> Type -> Type) s x y r (o :: Type -> Type). Transformable (ObjectClass h) s => h x y -> SMorphism r s o h x y
- SToDual :: forall s x (o :: Type -> Type) r (h :: Type -> Type -> Type). (Structure s x, Structure s (o x)) => SMorphism r s o h x (o x)
- SFromDual :: forall s y (o :: Type -> Type) r (h :: Type -> Type -> Type). (Structure s y, Structure s (o y)) => SMorphism r s o h (o y) y
- type PathSMorphism r s (o :: Type -> Type) (h :: Type -> Type -> Type) = Path (SMorphism r s o h)
- rdcPathSMorphism :: forall r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y. PathSMorphism r s o h x y -> Rdc (PathSMorphism r s o h x y)
- xSDualBi :: X (d x) -> X (Dual1 d x) -> X (SDualBi d x)
- xSctSomeMrph :: forall (h :: Type -> Type -> Type) s (o :: Type -> Type) r. (Morphism h, Transformable (ObjectClass h) s, Transformable1 o s) => N -> X (SomeObjectClass (SHom r s o h)) -> X (SomeMorphism (SHom r s o h))
- xSctSomeCmpb2 :: forall (h :: Type -> Type -> Type) s (o :: Type -> Type) r. (Morphism h, Transformable (ObjectClass h) s, Transformable1 o s) => N -> X (SomeObjectClass (SHom r s o h)) -> X (SomeMorphism h) -> X (SomeCmpb2 (SHom r s o h))
Dual
Dualisable
newtype SVal (d :: Type -> Type) x Source #
duality for DualisableG types.
Constructors
| SVal (d x) |
Instances
| (Morphism h, ApplicativeG d h c, DualisableG r c o d, Transformable s r, c ~ (->)) => ApplicativeG (SVal d) (SHom r s o h) c Source # | |
| (Morphism h, ApplicativeG d h c, DualisableG r c o d, Transformable s r, c ~ (->)) => ApplicativeG (SVal d) (SMorphism r s o h) c Source # | |
| (Morphism h, ApplicativeG d h c, DualisableG r c o d, Transformable s r, c ~ (->)) => FunctorialG (SVal d) (SHom r s o h) c Source # | |
Defined in OAlg.Category.SDuality | |
smap :: forall d r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y. ApplicativeG (SVal d) (SHom r s o h) (->) => SHom r s o h x y -> d x -> d y Source #
the induced mapping.
Bi-Dualisable
newtype SDualBi (d :: Type -> Type) x Source #
duality for DualisableGPair types d.
Instances
smapBi :: forall (h :: Type -> Type -> Type) (d :: Type -> Type) r (o :: Type -> Type) s x y. (Morphism h, ApplicativeG d h (->), ApplicativeG (Dual1 d) h (->), DualisableGBi r (->) o d, Transformable s r) => SHom r s o h x y -> SDualBi d x -> SDualBi d y Source #
application of SHom on SDualBi
Properties Let , Morphism h,
ApplicativeG d h (->), ApplicativeG (Dual1 d) h (->)
and DualisableGBi r (->) o d, then holds:Transformable s r
smapBiis functorial.For all
x,yandhinh x yholds:- If
, then for allvariant2h==Covariantdind xholds:wheresmapBih (SDualBi(Right1d))==SDualBi(Right1d')d' =.amapGh d - If
, then for allvariant2h==Covariantd'inholds:Dual1d xwheresmapBih (SDualBi(Left1d'))==SDualBi(Left1d)d =.amapGh d' - If
, then for allvariant2h==Contravariantdind xholds:.smapBih (SDualBi(Right1d))==SDualBi(Left1d') - If
, then for allvariant2h==Covariantd'inholds:Dual1d x.smapBih (SDualBi(Left1d'))==SDualBi(Right1d)
- If
vmapBi :: Disjunctive2 h => (Variant2 'Covariant h x y -> d x -> d y) -> (Variant2 'Covariant h x y -> Dual1 d x -> Dual1 d y) -> (Variant2 'Contravariant h x y -> d x -> Dual1 d y) -> (Variant2 'Contravariant h x y -> Dual1 d x -> d y) -> h x y -> SDualBi d x -> SDualBi d y Source #
class Show (Dual1 d x) => ShowDual1 (d :: k -> Type) (x :: k) Source #
helper class to avoid undecidable instances.
Instances
| (Show a, ShowPoint a) => ShowDual1 (Diagram t n m :: Type -> Type) (a :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Definition | |
| (Show a, ShowPoint a) => ShowDual1 (DiagramTrafo t n m :: Type -> Type) (a :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Transformation | |
| Oriented x => ShowDual1 (DiagramG Diagram t n m :: Type -> Type) (x :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Diagrammatic | |
| (Show x, ShowPoint x) => ShowDual1 (Cone s p Diagram t n m :: Type -> Type) (x :: Type) Source # | |
Defined in OAlg.Limes.Cone.Duality | |
class Eq (Dual1 d x) => EqDual1 (d :: k -> Type) (x :: k) Source #
helper class to avoid undecidable instances.
Instances
| (Eq a, EqPoint a) => EqDual1 (Diagram t n m :: Type -> Type) (a :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Definition | |
| (Eq a, EqPoint a) => EqDual1 (DiagramTrafo t n m :: Type -> Type) (a :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Transformation | |
| Oriented x => EqDual1 (DiagramG Diagram t n m :: Type -> Type) (x :: Type) Source # | |
Defined in OAlg.Entity.Diagram.Diagrammatic | |
| (Eq x, EqPoint x) => EqDual1 (Cone s p Diagram t n m :: Type -> Type) (x :: Type) Source # | |
Defined in OAlg.Limes.Cone.Duality | |
class Validable (Dual1 d x) => ValidableDual1 (d :: Type -> Type) x Source #
helper class to avoid undecidable instances.
Instances
| Oriented a => ValidableDual1 (Diagram t n m) a Source # | |
Defined in OAlg.Entity.Diagram.Definition | |
Duality Operator
data SHom r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y Source #
category for structural dualities.
Property Let h be in 'SHom r s o h x y with
, Morphism h, ApplicativeG d h c, then holds:DualisableG r c o d
whereamapGh.=.amapG(sForgeth),Transformables tTransformable(ObjectClassh) tTransformables r,TransformableGObjectClassRanged s candTransformablet r,.TransformableGObjectClassRanged t c
Note The property above states that relaxing the constraints given by s to the
constraints given by r dose not alter the applicative behavior.
Instances
sCov :: forall h s x y r (o :: Type -> Type). (Morphism h, Transformable (ObjectClass h) s) => h x y -> Variant2 'Covariant (SHom r s o h) x y Source #
the induced morphism.
Note The resulting morphism is Covariant.
sForget :: forall (h :: Type -> Type -> Type) t s r (o :: Type -> Type) x y. (Morphism h, Transformable (ObjectClass h) t, Transformable s t) => SHom r s o h x y -> SHom r t o h x y Source #
casting a s morphism to a t morphism.
sToDual :: forall o s x r (h :: Type -> Type -> Type). Transformable1 o s => Struct s x -> Variant2 'Contravariant (SHom r s o h) x (o x) Source #
SToDual as a Contravariant morphism in SHom.
sToDual' :: forall o s q (h :: Type -> Type -> Type) x r. Transformable1 o s => q o h -> Struct s x -> Variant2 'Contravariant (SHom r s o h) x (o x) Source #
prefixing a proxy.
sFromDual :: forall o s x r (h :: Type -> Type -> Type). Transformable1 o s => Struct s x -> Variant2 'Contravariant (SHom r s o h) (o x) x Source #
SFromDual as a Contravariant morphism in SHom.
sFromDual' :: forall o s q (h :: Type -> Type -> Type) x r. Transformable1 o s => q o h -> Struct s x -> Variant2 'Contravariant (SHom r s o h) (o x) x Source #
prefixing a proxy.
data SMorphism r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y where Source #
Constructors
| SCov :: forall (h :: Type -> Type -> Type) s x y r (o :: Type -> Type). Transformable (ObjectClass h) s => h x y -> SMorphism r s o h x y | |
| SToDual :: forall s x (o :: Type -> Type) r (h :: Type -> Type -> Type). (Structure s x, Structure s (o x)) => SMorphism r s o h x (o x) | |
| SFromDual :: forall s y (o :: Type -> Type) r (h :: Type -> Type -> Type). (Structure s y, Structure s (o y)) => SMorphism r s o h (o y) y |
Instances
| Disjunctive2 (SMorphism r s o h :: Type -> Type -> Type) Source # | |||||
| (Morphism h, ApplicativeG d h c, DualisableG r c o d, Transformable s r, c ~ (->)) => ApplicativeG (SVal d) (SMorphism r s o h) c Source # | |||||
| Morphism h => Morphism (SMorphism r s o h) Source # | |||||
Defined in OAlg.Category.SDuality Associated Types
Methods homomorphous :: SMorphism r s o h x y -> Homomorphous (ObjectClass (SMorphism r s o h)) x y Source # domain :: SMorphism r s o h x y -> Struct (ObjectClass (SMorphism r s o h)) x Source # range :: SMorphism r s o h x y -> Struct (ObjectClass (SMorphism r s o h)) y Source # | |||||
| Transformable s Typ => TransformableObjectClassTyp (SMorphism r s o h) Source # | |||||
Defined in OAlg.Category.SDuality | |||||
| Eq2 h => Eq2 (SMorphism r s o h) Source # | |||||
| Show2 h => Show2 (SMorphism r s o h) Source # | |||||
| Validable2 h => Validable2 (SMorphism r s o h) Source # | |||||
| Reducible (PathSMorphism r s o h x y) Source # | |||||
Defined in OAlg.Category.SDuality Methods reduce :: PathSMorphism r s o h x y -> PathSMorphism r s o h x y Source # | |||||
| Disjunctive (SMorphism r s o h x y) Source # | |||||
| type ObjectClass (SMorphism r s o h) Source # | |||||
Defined in OAlg.Category.SDuality | |||||
type PathSMorphism r s (o :: Type -> Type) (h :: Type -> Type -> Type) = Path (SMorphism r s o h) Source #
path of SCov.
rdcPathSMorphism :: forall r s (o :: Type -> Type) (h :: Type -> Type -> Type) x y. PathSMorphism r s o h x y -> Rdc (PathSMorphism r s o h x y) Source #
X
xSctSomeMrph :: forall (h :: Type -> Type -> Type) s (o :: Type -> Type) r. (Morphism h, Transformable (ObjectClass h) s, Transformable1 o s) => N -> X (SomeObjectClass (SHom r s o h)) -> X (SomeMorphism (SHom r s o h)) Source #
random variable for some SHoms between the given object classes.
xSctSomeCmpb2 :: forall (h :: Type -> Type -> Type) s (o :: Type -> Type) r. (Morphism h, Transformable (ObjectClass h) s, Transformable1 o s) => N -> X (SomeObjectClass (SHom r s o h)) -> X (SomeMorphism h) -> X (SomeCmpb2 (SHom r s o h)) Source #