| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
OAlg.Category.Dualisable
Description
generalized duality for categories.
Synopsis
- class (ReflexiveG r c o d, Transformable1 o r) => DualisableG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where
- data DualityG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where
- class DualisableG r (->) o Id => DualisableGId r (o :: Type -> Type)
- class DualisableG r (->) o Pnt => DualisableGPnt r (o :: Type -> Type)
- class (Category c, Transformable r (ObjectClass c)) => ReflexiveG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where
- reflG' :: forall r (c :: Type -> Type -> Type) o d q x. ReflexiveG r c o d => q c o d -> Struct r x -> Inv2 c (d x) (d (o (o x)))
- toDualG' :: DualisableG r c o d => q c o d -> Struct r x -> c (d x) (d (o x))
- tauO :: Transformable1 o s => Struct s x -> Struct s (o x)
- class (ReflexiveG r c o a, ReflexiveG r c o b, Transformable1 o r) => DualisableGPair r (c :: Type -> Type -> Type) (o :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where
- toDualGLft :: Struct r x -> c (a x) (b (o x))
- toDualGRgt :: Struct r x -> c (b x) (a (o x))
- fromDualGLft :: Struct r x -> c (b (o x)) (a x)
- fromDualGRgt :: Struct r x -> c (a (o x)) (b x)
- class DualisableGPair r c o d (Dual1 d) => DualisableGBi r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type)
- prpDualisableG :: forall r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) q x. (DualisableG r c o d, EqExt c) => q c o d -> Struct r x -> Statement
Dualisable
class (ReflexiveG r c o d, Transformable1 o r) => DualisableG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where Source #
category c equipped with a duality via a reflection.
Property Let , then for all DualisableG r c o dx and r in
holds:Struct r x
.toDualG'q r'.toDualG'q r.=.u.toDualG'q r.v.=.v' .toDualG'q r''.fromDualG'q r.=.v.toDualG'q r'
where q is any proxy in q c o d, r' = , tau1 rr'' = ,
tau1 r' and Inv2 u v = reflG' q r.Inv2 _ v' = reflG' q r'
Note The properties above imply that and toDualG r are inverse
in fromDualG rc for all x and r in and hence establish a duality
within Struct r xr structured types.
Minimal complete definition
Instances
| DualisableG OrtX EqualExtOrt Op Id Source # | |
| DualisableG OrtX EqualExtOrt Op Pnt Source # | |
| (Transformable r Type, TransformableOp r) => DualisableG r (->) Op Id Source # | |
| (Transformable r Type, TransformableOp r, Transformable r FbrOrt) => DualisableG r (->) Op Rt Source # | |
| (Transformable r Type, TransformableOp r) => DualisableG r (->) Op Pnt Source # | |
data DualityG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where Source #
attest of being DualisableG.
class DualisableG r (->) o Id => DualisableGId r (o :: Type -> Type) Source #
helper class to avoid undecidable instances.
Instances
| (TransformableType r, TransformableOp r) => DualisableGId r Op Source # | |
Defined in OAlg.Category.Dualisable | |
class DualisableG r (->) o Pnt => DualisableGPnt r (o :: Type -> Type) Source #
helper class to avoid undecidable instances.
Instances
| (TransformableType r, TransformableOp r) => DualisableGPnt r Op Source # | |
Defined in OAlg.Category.Dualisable | |
class (Category c, Transformable r (ObjectClass c)) => ReflexiveG r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) where Source #
category c equipped with a reflection on a subset of given by ObjectClass cr.
Instances
| ReflexiveG OrtX EqualExtOrt Op Id Source # | |
| ReflexiveG OrtX EqualExtOrt Op Pnt Source # | |
| Transformable r Type => ReflexiveG r (->) Op Id Source # | |
| Transformable r Type => ReflexiveG r (->) Op Rt Source # | |
| Transformable r Type => ReflexiveG r (->) Op Pnt Source # | |
reflG' :: forall r (c :: Type -> Type -> Type) o d q x. ReflexiveG r c o d => q c o d -> Struct r x -> Inv2 c (d x) (d (o (o x))) Source #
prefixing a proxy.
toDualG' :: DualisableG r c o d => q c o d -> Struct r x -> c (d x) (d (o x)) Source #
prefixing a proxy.
tauO :: Transformable1 o s => Struct s x -> Struct s (o x) Source #
propagating the s structure to o.
Dualisable Pairing
class (ReflexiveG r c o a, ReflexiveG r c o b, Transformable1 o r) => DualisableGPair r (c :: Type -> Type -> Type) (o :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type) where Source #
category c equipped with a duality pairing between a and b via reflections.
Minimal complete definition
Methods
toDualGLft :: Struct r x -> c (a x) (b (o x)) Source #
toDualGRgt :: Struct r x -> c (b x) (a (o x)) Source #
fromDualGLft :: Struct r x -> c (b (o x)) (a x) Source #
fromDualGRgt :: Struct r x -> c (a (o x)) (b x) Source #
class DualisableGPair r c o d (Dual1 d) => DualisableGBi r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) Source #
category c equipped with a duality pairing between d and its dual
via reflections.Dual1 d
Proposition
prpDualisableG :: forall r (c :: Type -> Type -> Type) (o :: Type -> Type) (d :: Type -> Type) q x. (DualisableG r c o d, EqExt c) => q c o d -> Struct r x -> Statement Source #
validity according to DualisableG.