oalg-base-1.1.4.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Limes.Definition

Description

definition of a Limes of a Diagram.

Synopsis

Limes

data Limes s p t n m a where Source #

limes of a diagram, i.e. a distinguished cone over a given diagram having the following universal property

Property Let a be a Multiplicative structure and u in Limes s p t n m a then holds: Let l = universalCone u in

  1. l is valid.
  2. eligibleCone u l.
  3. eligibleFactor u l (one (tip l)).
  4. For all c in Cone s p t n m a with eligibleCone u c holds: Let f = universalFactor u c in

    1. f is valid.
    2. eligibleFactor u c f.
    3. For all x in a with eligibleFactor u c x holds: x == f.

Note

  1. As the function universalFactor l for a given limes l is uniquely determined by the underlying cone of l, 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.
  2. 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 :: Cone s Projective t n m a -> (Cone s Projective t n m a -> a) -> Limes s Projective t n m a 
LimesInjective :: Cone s Injective t n m a -> (Cone s Injective t n m a -> a) -> Limes s Injective t n m a 

Instances

Instances details
IsoMultiplicative h => Applicative1 h (Limes Mlt p t n m) Source # 
Instance details

Defined in OAlg.Limes.Definition

Methods

amap1 :: h a b -> Limes Mlt p t n m a -> Limes Mlt p t n m b Source #

Oriented a => Show (Limes s p t n m a) Source # 
Instance details

Defined in OAlg.Limes.Definition

Methods

showsPrec :: Int -> Limes s p t n m a -> ShowS #

show :: Limes s p t n m a -> String #

showList :: [Limes s p t n m a] -> ShowS #

Oriented a => Eq (Limes s p t n m a) Source #

see OAlg.Limes.Definition

Instance details

Defined in OAlg.Limes.Definition

Methods

(==) :: Limes s p t n m a -> Limes s p t n m a -> Bool #

(/=) :: Limes s p t n m a -> Limes s p t n m a -> Bool #

(Distributive a, XStandardOrtPerspective p a, Typeable p, Typeable t, Typeable n, Typeable m) => Validable (Limes Dst p t n m a) Source # 
Instance details

Defined in OAlg.Limes.Definition

Methods

valid :: Limes Dst p t n m a -> Statement Source #

(Multiplicative a, XStandardOrtPerspective p a) => Validable (Limes Mlt p t n m a) Source # 
Instance details

Defined in OAlg.Limes.Definition

Methods

valid :: Limes Mlt p t n m a -> Statement Source #

(Distributive a, XStandardOrtPerspective p a, Typeable p, Typeable t, Typeable n, Typeable m) => Entity (Limes Dst p t n m a) Source # 
Instance details

Defined in OAlg.Limes.Definition

(Multiplicative a, XStandardOrtPerspective p a, Typeable p, Typeable t, Typeable n, Typeable m) => Entity (Limes Mlt p t n m a) Source # 
Instance details

Defined in OAlg.Limes.Definition

type Dual (Limes s p t n m a :: Type) Source # 
Instance details

Defined in OAlg.Limes.Definition

type Dual (Limes s p t n m a :: Type) = Limes s (Dual p) (Dual t) n m (Op a)

universalPoint :: Limes s p t n m a -> Point a Source #

the universal point of a limes, i.e. the tip of the universal cone.

universalCone :: Limes s p t n m a -> Cone s p t n m a Source #

the underlying universal cone of a limes.

universalShell :: Limes s p t n m a -> FinList n a Source #

the shell of the universal cone.

universalFactor :: Limes s p t n m a -> Cone s p t n m a -> a Source #

the universal factor of a Limes l to a given eligible cone.

Property Let l be in Limes s p t n m a then holds: For all c in Cone s p t n m a with eligibleCone l c holds: eligibleFactor l c (universalFactor l c).

diagram :: Limes s p t n m a -> Diagram t n m a Source #

the underlying diagram of a limes.

lmDiagramTypeRefl :: Limes s p t n m a -> Dual (Dual t) :~: t Source #

reflexivity of the underlying diagram type.

eligibleCone :: Oriented a => Limes s p t n m a -> Cone s p t n m a -> Bool Source #

eligibility of a cone with respect to a limes.

Property Let u be in Limes s p t n m a and c in Cone s p t n m a then holds: eligibleCone u c is true if and only if diagram u == cnDiagram c is true.

eligibleFactor :: Limes s p t n m a -> Cone s p t n m a -> a -> Bool Source #

eligibility of a factor with respect to a limes and a cone.

Property Let u be in Limes s p t n m a, c in Cone s p t n m a with eligibleCone u c and x in a then holds:

  1. If u matches LimesProjective l _ then holds: eligibleFactor u c x is true if and only if cnEligibleFactor x c l is true.
  2. If u matches LimesInjective l _ then holds: eligibleFactor u c x is true if and only if cnEligibleFactor x l c is true.

lmMap :: IsoOrt s h => h a b -> Limes s p t n m a -> Limes s p t n m b Source #

mapping between limits.

Duality

lmToOp :: LimesDuality s f g a -> f a -> g (Op a) Source #

to g (Op a).

lmFromOp :: LimesDuality s f g a -> g (Op a) -> f a Source #

from g (Op a).

data LimesDuality s f g a where Source #

Op-duality between limes types.

Constructors

LimesDuality :: ConeStruct s a -> (f a :~: Limes s p t n m a) -> (g (Op a) :~: Dual (Limes s p t n m a)) -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> LimesDuality s f g a 

coLimes :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Limes s p t n m a -> Dual (Limes s p t n m a) Source #

the co limes with its inverse coLimesInv.

coLimesInv :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Dual (Limes s p t n m a) -> Limes s p t n m a Source #

the inverse of coLimes.

lmFromOpOp :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Limes s p t n m (Op (Op a)) -> Limes s p t n m a Source #

from Op . Op.

Construction

lmToPrjOrnt :: (Entity p, a ~ Orientation p) => p -> Diagram t n m a -> Limes Mlt Projective t n m a Source #

projective limes on oriented structures.

lmFromInjOrnt :: (Entity p, a ~ Orientation p) => p -> Diagram t n m a -> Limes Mlt Injective t n m a Source #

injective limes on oriented structures.

Proposition

relLimes :: ConeStruct s a -> XOrtPerspective p a -> Limes s p t n m a -> Statement Source #

validity of a Limes.

Exception