| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
OAlg.Limes.Definition.Core
Contents
Description
basic definition of a Limes over a Diagrammatic object yielding a Conic object.
Synopsis
- type Limes s (p :: Perspective) = LimesG Cone s p Diagram
- data LimesG (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x where
- LimesProjective :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. c s 'Projective d t n m x -> (Cone s 'Projective d t n m x -> x) -> LimesG c s 'Projective d t n m x
- LimesInjective :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. c s 'Injective d t n m x -> (Cone s 'Injective d t n m x -> x) -> LimesG c s 'Injective d t n m x
- universalCone :: forall c s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. LimesG c s p d t n m x -> c s p d t n m x
- universalFactor :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. LimesG c s p d t n m x -> Cone s p d t n m x -> x
- universalDiagram :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) d (t :: DiagramType) (n :: N') (m :: N') x. Conic c => LimesG c s p d t n m x -> d t n m x
- eligibleCone :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x s (p :: Perspective). (Conic c, Eq (d t n m x)) => LimesG c s p d t n m x -> Cone s p d t n m x -> Bool
- eligibleFactor :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (t :: DiagramType) (n :: N') (m :: N') x. (Conic c, Diagrammatic d) => LimesG c s p d t n m x -> Cone s p d t n m x -> x -> Bool
- lmDiagramTypeRefl :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (t :: DiagramType) (n :: N') (m :: N') x. (Conic c, Diagrammatic d) => LimesG c s p d t n m x -> Dual (Dual t) :~: t
- lmMltPrjOrnt :: forall p x (t :: DiagramType) (n :: N') (m :: N'). (Entity p, x ~ Orientation p) => p -> Diagram t n m x -> Limes Mlt 'Projective t n m x
- lmMltInjOrnt :: forall p x (t :: DiagramType) (n :: N') (m :: N'). (Entity p, x ~ Orientation p) => p -> Diagram t n m x -> Limes Mlt 'Injective t n m x
Limes
data LimesG (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x where Source #
limes of a Diagrammatic object, i.e. a distinguished Conic object over a the underlying
diagrammaticObject having the following universal property
Property Let , Conic c, Diagrammatic _d and
Multiplicative xl in then holds:
Let LimesG s p c d t n m xu = inuniversalCone l
For all
cinwithCones p d t n m xholds: LeteligibleConel cf =inuniversalFactorl c.eligibleFactorl c f- For all
xinxwithholds:eligibleFactorl c xx.==f
Note
- As the function
for a given limesuniversalFactorllis uniquely determined by the underlying cone ofl, it is permissible to test equality of two limits just by there underling cones. In every computation equal limits can be safely replaced by each other. - It is not required that the evaluation of universal factor on a non eligible cone yield an exception! The implementation of the general algorithms for limits do not check for eligibility.
Constructors
| LimesProjective :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. c s 'Projective d t n m x -> (Cone s 'Projective d t n m x -> x) -> LimesG c s 'Projective d t n m x | |
| LimesInjective :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. c s 'Injective d t n m x -> (Cone s 'Injective d t n m x -> x) -> LimesG c s 'Injective d t n m x |
Instances
| NaturalConicBi (Inv2 h) c s p d t n m => ApplicativeG (SDualBi (LimesG c s p d t n m)) (Inv2 h) (->) Source # | |
| NaturalConicBi (Inv2 h) c s p d t n m => FunctorialG (SDualBi (LimesG c s p d t n m)) (Inv2 h) (->) Source # | |
Defined in OAlg.Limes.Definition.Duality | |
| Show (c s p d t n m x) => Show (LimesG c s p d t n m x) Source # | |
| (Conic c, Diagrammatic d, XStandardEligibleConeG c s p d t n m x, XStandardEligibleConeFactorG c s p d t n m x, Show (c s p d t n m x), Validable (c s p d t n m x), Entity (d t n m x), Entity x) => Validable (LimesG c s p d t n m x) Source # | |
| type Dual1 (LimesG c s p d t n m :: Type -> Type) Source # | |
universalCone :: forall c s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. LimesG c s p d t n m x -> c s p d t n m x Source #
universalFactor :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x. LimesG c s p d t n m x -> Cone s p d t n m x -> x Source #
the unviersal factor given by the LimesG.
universalDiagram :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) d (t :: DiagramType) (n :: N') (m :: N') x. Conic c => LimesG c s p d t n m x -> d t n m x Source #
the diagrammatic object given by the universal cone of the LimesG.
eligibleCone :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) (t :: DiagramType) (n :: N') (m :: N') x s (p :: Perspective). (Conic c, Eq (d t n m x)) => LimesG c s p d t n m x -> Cone s p d t n m x -> Bool Source #
eligibleFactor :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (t :: DiagramType) (n :: N') (m :: N') x. (Conic c, Diagrammatic d) => LimesG c s p d t n m x -> Cone s p d t n m x -> x -> Bool Source #
lmDiagramTypeRefl :: forall (c :: Type -> Perspective -> (DiagramType -> N' -> N' -> Type -> Type) -> DiagramType -> N' -> N' -> Type -> Type) (d :: DiagramType -> N' -> N' -> Type -> Type) s (p :: Perspective) (t :: DiagramType) (n :: N') (m :: N') x. (Conic c, Diagrammatic d) => LimesG c s p d t n m x -> Dual (Dual t) :~: t Source #
reflexivity for DiagramType.
Constructions
lmMltPrjOrnt :: forall p x (t :: DiagramType) (n :: N') (m :: N'). (Entity p, x ~ Orientation p) => p -> Diagram t n m x -> Limes Mlt 'Projective t n m x Source #
projective limes on oriented structures.
lmMltInjOrnt :: forall p x (t :: DiagramType) (n :: N') (m :: N'). (Entity p, x ~ Orientation p) => p -> Diagram t n m x -> Limes Mlt 'Injective t n m x Source #
injective limes on oriented structures.