| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
OAlg.Adjunction.Definition
Contents
Description
definition of adjunctions between Multiplicative structures. We relay on the terms and notation as
used in nLab
Synopsis
- data Adjunction (h :: Type -> Type -> Type) d c where
- Adjunction :: forall (h :: Type -> Type -> Type) c d. h c d -> h d c -> (Point c -> c) -> (Point d -> d) -> Adjunction h d c
- unitr :: forall (h :: Type -> Type -> Type) d c. Adjunction h d c -> Point c -> c
- unitl :: forall (h :: Type -> Type -> Type) d c. Adjunction h d c -> Point d -> d
- adjl :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Point d -> c -> d
- adjr :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Point c -> d -> c
- adjHomMlt :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Homomorphous Mlt d c
- adjHomDst :: forall (h :: Type -> Type -> Type) d c. HomDistributive h => Adjunction h d c -> Homomorphous Dst d c
- adjHomDisj :: forall (h :: Type -> Type -> Type) s x y (o :: Type -> Type). (HomMultiplicative h, Transformable (ObjectClass h) s) => Adjunction h x y -> Adjunction (Variant2 'Covariant (HomDisj s o h)) x y
- adjMapCnt :: forall (h :: Type -> Type -> Type) x x' y y'. FunctorialOriented h => Variant2 'Contravariant (Inv2 h) x x' -> Variant2 'Contravariant (Inv2 h) y y' -> Adjunction (Variant2 'Covariant h) x y -> Adjunction (Variant2 'Covariant h) y' x'
- coAdjunctionOp :: forall (h :: Type -> Type -> Type) x y. HomMultiplicative h => Adjunction h x y -> Adjunction (Variant2 'Covariant (HomDisj Mlt Op h)) (Op y) (Op x)
- prpAdjunction :: forall (h :: Type -> Type -> Type) d c. (Hom Mlt h, Entity2 h) => Adjunction h d c -> X (Point d) -> X d -> X (Point c) -> X c -> Statement
- prpAdjunctionRight :: forall (h :: Type -> Type -> Type) d c. (Hom Mlt h, Show2 h) => Adjunction h d c -> Point c -> c -> Statement
- prpAdjunctionLeft :: forall (h :: Type -> Type -> Type) d c. (Hom Mlt h, Show2 h) => Adjunction h d c -> Point d -> d -> Statement
Adjunction
data Adjunction (h :: Type -> Type -> Type) d c where Source #
adjunction between two multiplicative structures d and c according
two given multiplicative homomorphisms l :: h c d and
r :: h d c.
l
<-------
d c
-------->
r
Property Let be in Adjunction l r u v where
Adjunction h d ch is a Mlt-homomorphism,
then holds:
Naturality of the right unit
u:Naturality of the left unit
v:Triangle identities:
The following diagrams illustrate the above equations
naturality of the right unit u (Equations 1.1 and 1.2):
u a
a -------> pmap r (pmap l a)
| |
f | | amap r (amap l f)
v v
b -------> pmap r (pmap l b)
u b
naturality of the left unit v (Equations 2.1 and 2.2):
v a
a <------- pmap l (pmap r a)
| |
g | | amap l (ampa r g)
v v
b <------ pmap l (pmap r b)
v b
the left adjoint of the right unit u is one (Equation 3.1, see adjl):
pmap l x x
/ | |
/ | |
/ | |
amap l (u x) / | one ~ u x |
/ | |
/ | |
v v v
pmap l (pmap r (pmap l x)) ---> pmap l x pmap r (pmap l x)
v (pmap l x)
the right adjoint of the left unit v is one (Equation 3.2, see adjr):
u (pmap r y)
pmap l (pmap r y) pmap r y ---> pmap r (pmap l (pmap r y))
| | /
| | /
| v y ~ one | / amap r (v y)
| | /
| | /
v v v
y pmap r y
Constructors
| Adjunction | |
Instances
| (HomMultiplicative h, Entity2 h, XStandardPoint d, XStandard d, XStandardPoint c, XStandard c) => Validable (Adjunction h d c) Source # | |
Defined in OAlg.Adjunction.Definition Methods valid :: Adjunction h d c -> Statement Source # | |
unitr :: forall (h :: Type -> Type -> Type) d c. Adjunction h d c -> Point c -> c Source #
the unit on the right side.
unitl :: forall (h :: Type -> Type -> Type) d c. Adjunction h d c -> Point d -> d Source #
the unit on the left side.
adjl :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Point d -> c -> d Source #
adjr :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Point c -> d -> c Source #
adjHomMlt :: forall (h :: Type -> Type -> Type) d c. Hom Mlt h => Adjunction h d c -> Homomorphous Mlt d c Source #
attest of being Multiplicative homomorphous.
adjHomDst :: forall (h :: Type -> Type -> Type) d c. HomDistributive h => Adjunction h d c -> Homomorphous Dst d c Source #
attest of being Distributive homomorphous.
adjHomDisj :: forall (h :: Type -> Type -> Type) s x y (o :: Type -> Type). (HomMultiplicative h, Transformable (ObjectClass h) s) => Adjunction h x y -> Adjunction (Variant2 'Covariant (HomDisj s o h)) x y Source #
the induce adjunction.
Map
adjMapCnt :: forall (h :: Type -> Type -> Type) x x' y y'. FunctorialOriented h => Variant2 'Contravariant (Inv2 h) x x' -> Variant2 'Contravariant (Inv2 h) y y' -> Adjunction (Variant2 'Covariant h) x y -> Adjunction (Variant2 'Covariant h) y' x' Source #
contravariant mapping of Adjunction.
coAdjunctionOp :: forall (h :: Type -> Type -> Type) x y. HomMultiplicative h => Adjunction h x y -> Adjunction (Variant2 'Covariant (HomDisj Mlt Op h)) (Op y) (Op x) Source #
the co-Adjunction according to Op.
Proposition
prpAdjunction :: forall (h :: Type -> Type -> Type) d c. (Hom Mlt h, Entity2 h) => Adjunction h d c -> X (Point d) -> X d -> X (Point c) -> X c -> Statement Source #
validity of an adjunction according to the properties of Adjunction.