| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
OAlg.Limes.Cone.Definition
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
cmatchesfor aConeProjectived t csMultiplicativestructureathen holds:If
cmatchesfor aConeInjectived t csMultiplicativestructureathen holds:If
cmatchesfor aConeKernelp kDistributivestructureathen holds:If
cmatchesfor aConeCokernelp kDistributivestructureathen holds:
Constructors
| 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.
Constructors
| Projective | |
| 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.
Constructors
| ConeZeroHead (Cone s p t n m a) |
Instances
| Show (ConeZeroHead s p t n m a) Source # | |
Defined in OAlg.Limes.Cone.Definition Methods 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 Methods (==) :: 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.
Constructors
| 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.
Constructors
| ConeStructMlt :: Multiplicative a => ConeStruct Mlt a | |
| ConeStructDst :: Distributive a => ConeStruct Dst a |
Instances
| Show (ConeStruct s a) Source # | |
Defined in OAlg.Limes.Cone.Definition Methods 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 Methods (==) :: 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 inFactorChainf dfor aFactorChainTon aMultiplicativestructureathen holds:.endf==chnToStartd - Let
be inFactorChainf dfor aFactorChainFromn aMultiplicativestructureathen holds:.endf==chnFromStartd
Constructors
| FactorChain a (Diagram (Chain s) (n + 1) n a) |
Instances
| Oriented a => Show (FactorChain s n a) Source # | |
Defined in OAlg.Limes.Cone.Definition Methods 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 Methods (==) :: 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 | |