Copyright | (c) Erich Gut |
---|---|
License | BSD3 |
Maintainer | zerich.gut@gmail.com |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data Cone s p t n m a where
- ConeProjective :: Multiplicative a => Diagram t n m a -> Point a -> FinList n a -> Cone Mlt Projective t n m a
- ConeInjective :: Multiplicative a => Diagram t n m a -> Point a -> FinList n a -> Cone Mlt Injective t n m a
- ConeKernel :: Distributive a => Diagram (Parallel LeftToRight) N2 m a -> a -> Cone Dst Projective (Parallel LeftToRight) N2 m a
- ConeCokernel :: Distributive a => Diagram (Parallel RightToLeft) N2 m a -> a -> Cone Dst Injective (Parallel RightToLeft) N2 m a
- data Perspective
- cnDiagram :: Cone s p t n m a -> Diagram t n m a
- cnDiagramTypeRefl :: Cone s p t n m a -> Dual (Dual t) :~: t
- tip :: Cone s p t n m a -> Point a
- shell :: Cone s p t n m a -> FinList n a
- cnArrows :: Cone s p t n m a -> FinList m a
- cnPoints :: Oriented a => Cone s p t n m a -> FinList n (Point a)
- cnMap :: Hom s h => h a b -> Cone s p t n m a -> Cone s p t n m b
- cnMapMlt :: Hom Mlt h => h a b -> Cone Mlt p t n m a -> Cone Mlt p t n m b
- cnMapDst :: Hom Dst h => h a b -> Cone Dst p t n m a -> Cone Dst p t n m b
- cnZeroHead :: Cone Dst p t n m a -> ConeZeroHead Mlt p t n (m + 1) a
- cnKernel :: (Distributive a, p ~ Projective, t ~ Parallel LeftToRight) => ConeZeroHead Mlt p t n (m + 1) a -> Cone Dst p t n m a
- cnCokernel :: (Distributive a, p ~ Injective, t ~ Parallel RightToLeft) => ConeZeroHead Mlt p t n (m + 1) a -> Cone Dst p t n m a
- cnDiffHead :: (Distributive a, Abelian a) => Cone Mlt p (Parallel d) n (m + 1) a -> ConeZeroHead Mlt p (Parallel d) n (m + 1) a
- newtype ConeZeroHead s p t n m a = ConeZeroHead (Cone s p t n m a)
- coConeZeroHead :: ConeZeroHead s p t n m a -> Dual (ConeZeroHead s p t n m a)
- czFromOpOp :: ConeStruct s a -> ConeZeroHead s p t n m (Op (Op a)) -> ConeZeroHead s p t n m a
- coConeZeroHeadInv :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Dual (ConeZeroHead s p t n m a) -> ConeZeroHead s p t n m a
- cnToOp :: ConeDuality s f g a -> f a -> g (Op a)
- cnFromOp :: ConeDuality s f g a -> g (Op a) -> f a
- data ConeDuality s f g a where
- ConeDuality :: ConeStruct s a -> (f a :~: Cone s p t n m a) -> (g (Op a) :~: Dual (Cone s p t n m a)) -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> ConeDuality s f g a
- coCone :: Cone s p t n m a -> Dual (Cone s p t n m a)
- coConeInv :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Dual (Cone s p t n m a) -> Cone s p t n m a
- cnFromOpOp :: ConeStruct s a -> Cone s p t n m (Op (Op a)) -> Cone s p t n m a
- data ConeStruct s a where
- ConeStructMlt :: Multiplicative a => ConeStruct Mlt a
- ConeStructDst :: Distributive a => ConeStruct Dst a
- cnStructOp :: ConeStruct s a -> ConeStruct s (Op a)
- cnStructMlt :: ConeStruct s a -> Struct Mlt a
- cnStruct :: ConeStruct s a -> Struct s a
- cnPrjOrnt :: Entity p => p -> Diagram t n m (Orientation p) -> Cone Mlt Projective t n m (Orientation p)
- cnInjOrnt :: Entity p => p -> Diagram t n m (Orientation p) -> Cone Mlt Injective t n m (Orientation p)
- cnPrjChainTo :: Multiplicative a => FactorChain To n a -> Cone Mlt Projective (Chain To) (n + 1) n a
- cnPrjChainToInv :: Cone Mlt Projective (Chain To) (n + 1) n a -> FactorChain To n a
- cnPrjChainFrom :: Multiplicative a => FactorChain From n a -> Cone Mlt Projective (Chain From) (n + 1) n a
- cnPrjChainFromInv :: Cone Mlt Projective (Chain From) (n + 1) n a -> FactorChain From n a
- data FactorChain s n a = FactorChain a (Diagram (Chain s) (n + 1) n a)
Cone
data Cone s p t n m a where Source #
cone over a diagram.
Properties Let c
be in
then holds:Cone
s p t n m a
If
c
matches
for aConeProjective
d t csMultiplicative
structurea
then holds:If
c
matches
for aConeInjective
d t csMultiplicative
structurea
then holds:If
c
matches
for aConeKernel
p kDistributive
structurea
then holds:If
c
matches
for aConeCokernel
p kDistributive
structurea
then holds:
ConeProjective :: Multiplicative a => Diagram t n m a -> Point a -> FinList n a -> Cone Mlt Projective t n m a | |
ConeInjective :: Multiplicative a => Diagram t n m a -> Point a -> FinList n a -> Cone Mlt Injective t n m a | |
ConeKernel :: Distributive a => Diagram (Parallel LeftToRight) N2 m a -> a -> Cone Dst Projective (Parallel LeftToRight) N2 m a | |
ConeCokernel :: Distributive a => Diagram (Parallel RightToLeft) N2 m a -> a -> Cone Dst Injective (Parallel RightToLeft) N2 m a |
Instances
data Perspective Source #
concept of Projective
and Injective
.
Instances
cnDiagramTypeRefl :: Cone s p t n m a -> Dual (Dual t) :~: t Source #
reflexivity of the underlying diagram type.
cnMapMlt :: Hom Mlt h => h a b -> Cone Mlt p t n m a -> Cone Mlt p t n m b Source #
mapping of a cone under a Multiplicative
homomorphism.
cnMapDst :: Hom Dst h => h a b -> Cone Dst p t n m a -> Cone Dst p t n m b Source #
mapping of a cone under a Distributive
homomorphism.
Distributive
cnZeroHead :: Cone Dst p t n m a -> ConeZeroHead Mlt p t n (m + 1) a Source #
embedding of a cone in a distributive structure to its multiplicative cone.
cnKernel :: (Distributive a, p ~ Projective, t ~ Parallel LeftToRight) => ConeZeroHead Mlt p t n (m + 1) a -> Cone Dst p t n m a Source #
the kernel cone of a zero headed parallel cone, i.e. the inverse of cnZeroHead
.
cnCokernel :: (Distributive a, p ~ Injective, t ~ Parallel RightToLeft) => ConeZeroHead Mlt p t n (m + 1) a -> Cone Dst p t n m a Source #
the cokernel cone of a zero headed parallel cone, i.e. the inverse of cnZeroHead
.
cnDiffHead :: (Distributive a, Abelian a) => Cone Mlt p (Parallel d) n (m + 1) a -> ConeZeroHead Mlt p (Parallel d) n (m + 1) a Source #
subtracts to every arrow of the underlying parallel diagram the first arrow and adapts the shell accordingly.
newtype ConeZeroHead s p t n m a Source #
predicate for cones where the first arrow of its underlying diagram is equal to zero
.
ConeZeroHead (Cone s p t n m a) |
Instances
Show (ConeZeroHead s p t n m a) Source # | |
Defined in OAlg.Limes.Cone.Definition showsPrec :: Int -> ConeZeroHead s p t n m a -> ShowS # show :: ConeZeroHead s p t n m a -> String # showList :: [ConeZeroHead s p t n m a] -> ShowS # | |
Eq (ConeZeroHead s p t n m a) Source # | |
Defined in OAlg.Limes.Cone.Definition (==) :: ConeZeroHead s p t n m a -> ConeZeroHead s p t n m a -> Bool # (/=) :: ConeZeroHead s p t n m a -> ConeZeroHead s p t n m a -> Bool # | |
Distributive a => Validable (ConeZeroHead s p d n ('S m) a) Source # | |
Defined in OAlg.Limes.Cone.Definition | |
(Distributive a, Typeable s, Typeable p, Typeable t, Typeable n, Typeable m) => Entity (ConeZeroHead s p t n ('S m) a) Source # | |
Defined in OAlg.Limes.Cone.Definition | |
type Dual (ConeZeroHead s p t n m a :: TYPE LiftedRep) Source # | |
Defined in OAlg.Limes.Cone.Definition type Dual (ConeZeroHead s p t n m a :: TYPE LiftedRep) = ConeZeroHead s (Dual p) (Dual t) n m (Op a) |
coConeZeroHead :: ConeZeroHead s p t n m a -> Dual (ConeZeroHead s p t n m a) Source #
to the dual, with its inverse coConeZeroHead
.
czFromOpOp :: ConeStruct s a -> ConeZeroHead s p t n m (Op (Op a)) -> ConeZeroHead s p t n m a Source #
from the bidual.
coConeZeroHeadInv :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Dual (ConeZeroHead s p t n m a) -> ConeZeroHead s p t n m a Source #
from the dual, with its inverse coConeZeroHead
.
Duality
data ConeDuality s f g a where Source #
Op
-duality between cone types.
ConeDuality :: ConeStruct s a -> (f a :~: Cone s p t n m a) -> (g (Op a) :~: Dual (Cone s p t n m a)) -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> ConeDuality s f g a |
coCone :: Cone s p t n m a -> Dual (Cone s p t n m a) Source #
to the dual cone, with its inverse coConeInv
.
coConeInv :: ConeStruct s a -> (Dual (Dual p) :~: p) -> (Dual (Dual t) :~: t) -> Dual (Cone s p t n m a) -> Cone s p t n m a Source #
from the dual cone, with its inverse coCone
.
cnFromOpOp :: ConeStruct s a -> Cone s p t n m (Op (Op a)) -> Cone s p t n m a Source #
Cone Struct
data ConeStruct s a where Source #
cone structures.
ConeStructMlt :: Multiplicative a => ConeStruct Mlt a | |
ConeStructDst :: Distributive a => ConeStruct Dst a |
Instances
Show (ConeStruct s a) Source # | |
Defined in OAlg.Limes.Cone.Definition showsPrec :: Int -> ConeStruct s a -> ShowS # show :: ConeStruct s a -> String # showList :: [ConeStruct s a] -> ShowS # | |
Eq (ConeStruct s a) Source # | |
Defined in OAlg.Limes.Cone.Definition (==) :: ConeStruct s a -> ConeStruct s a -> Bool # (/=) :: ConeStruct s a -> ConeStruct s a -> Bool # |
cnStructOp :: ConeStruct s a -> ConeStruct s (Op a) Source #
the opposite cone structure.
cnStructMlt :: ConeStruct s a -> Struct Mlt a Source #
the Multiplicative
structure of a cone structure.
cnStruct :: ConeStruct s a -> Struct s a Source #
the associated structure of a cone structure.
Orientation
cnPrjOrnt :: Entity p => p -> Diagram t n m (Orientation p) -> Cone Mlt Projective t n m (Orientation p) Source #
the projective cone on Orientation
with the underlying given diagram and tip with the given
point.
cnInjOrnt :: Entity p => p -> Diagram t n m (Orientation p) -> Cone Mlt Injective t n m (Orientation p) Source #
the injective cone on Orientation
with the underlying given diagram and tip with the given
point.
Chain
cnPrjChainTo :: Multiplicative a => FactorChain To n a -> Cone Mlt Projective (Chain To) (n + 1) n a Source #
the induced Projective
cone with ending factor given by the given FactorChain
.
Property Let h =
be in
FactorChain
f d
for a FactorChain
To
n aMultiplicative
structure a
and
then holds:
ConeProjective
d' _ (_:|
..:|
c:|
Nil
) = cnPrjChainTo
hd'
and ==
dc
.==
f
cnPrjChainToInv :: Cone Mlt Projective (Chain To) (n + 1) n a -> FactorChain To n a Source #
the underlying factor chain of a projective chain to cone, i.e the inverse of
cnPrjChainToInv
.
cnPrjChainFrom :: Multiplicative a => FactorChain From n a -> Cone Mlt Projective (Chain From) (n + 1) n a Source #
the induced Projective
cone with starting factor given by the given FactorChain
.
Property Let h =
be in
FactorChain
f d
for a FactorChain
From
n aMultiplicative
structure a
and
then holds:
ConeProjective
d' _ (c:|
_) = cnPrjChainFrom
hd'
and ==
dc
.==
f
cnPrjChainFromInv :: Cone Mlt Projective (Chain From) (n + 1) n a -> FactorChain From n a Source #
the underlying factor chain of a projective chain from cone, i.e. the inverse of
cnPrjChainFrom
.
data FactorChain s n a Source #
predicate for a factor with end
point at the starting point of the given chain.
Property
- Let
be inFactorChain
f d
for aFactorChain
To
n aMultiplicative
structurea
then holds:
.end
f==
chnToStart
d - Let
be inFactorChain
f d
for aFactorChain
From
n aMultiplicative
structurea
then holds:
.end
f==
chnFromStart
d
FactorChain a (Diagram (Chain s) (n + 1) n a) |
Instances
Oriented a => Show (FactorChain s n a) Source # | |
Defined in OAlg.Limes.Cone.Definition showsPrec :: Int -> FactorChain s n a -> ShowS # show :: FactorChain s n a -> String # showList :: [FactorChain s n a] -> ShowS # | |
Oriented a => Eq (FactorChain s n a) Source # | |
Defined in OAlg.Limes.Cone.Definition (==) :: FactorChain s n a -> FactorChain s n a -> Bool # (/=) :: FactorChain s n a -> FactorChain s n a -> Bool # | |
Oriented a => Validable (FactorChain 'From n a) Source # | |
Defined in OAlg.Limes.Cone.Definition | |
Oriented a => Validable (FactorChain 'To n a) Source # | |
Defined in OAlg.Limes.Cone.Definition | |
(Multiplicative a, Typeable n) => Entity (FactorChain 'From n a) Source # | |
Defined in OAlg.Limes.Cone.Definition | |
(Multiplicative a, Typeable n) => Entity (FactorChain 'To n a) Source # | |
Defined in OAlg.Limes.Cone.Definition |