Copyright | Guillaume Sabbagh 2022 |
---|---|
License | GPL-3 |
Maintainer | guillaumesabbagh@protonmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
The FinCat category has as objects finite categories and as morphisms homogeneous functors between them.
Functors must be homogeneous because otherwise we would not be able to compose them with the Morphism
typeclass.
The FinCat
datatype should not be confused with the FiniteCategory
typeclass. The FiniteCategory
typeclass describes axioms a structure should follow to be considered a finite category. The FinCat
type is itself a Category
.
A FinFunctor
is a Diagram
where the source and target category are the same. The source category of a FinFunctor
should be finite.
Synopsis
- type FinFunctor c m o = Diagram c m o c m o
- data FinCat c m o = FinCat
Homogeneous functor
type FinFunctor c m o = Diagram c m o c m o Source #
A FinFunctor
funct between two categories is a map between objects and a map between arrows of the two categories such that :
funct ->$ (source f) == source (funct ->£ f)
funct ->$ (target f) == target (funct ->£ f)
funct ->£ (f @ g) = (funct ->£ f) @ (funct ->£ g)
funct ->£ (identity a) = identity (funct ->$ a)
A FinFunctor
is a type of Diagram
.
It is meant to be a morphism between categories within FinCat
, it is homogeneous, the type of the source category must be the same as the type of the target category.
See Diagram
in Math.Categories.FunctorCategory for heterogeneous ones.
FinCat
The FinCat
category has as objects finite categories and as morphisms homogeneous functors between them.
Instances
PrettyPrint (FinCat c m o) Source # | |
Defined in Math.Categories.FinCat | |
Simplifiable (FinCat c m o) Source # | |
Defined in Math.Categories.FinCat | |
Generic (FinCat c m o) Source # | |
Show (FinCat c m o) Source # | |
Eq (FinCat c m o) Source # | |
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o) => Category (FinCat c m o) (FinFunctor c m o) c Source # | |
Defined in Math.Categories.FinCat identity :: FinCat c m o -> c -> FinFunctor c m o Source # ar :: FinCat c m o -> c -> c -> Set (FinFunctor c m o) Source # genAr :: FinCat c m o -> c -> c -> Set (FinFunctor c m o) Source # decompose :: FinCat c m o -> FinFunctor c m o -> [FinFunctor c m o] Source # | |
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o, FiniteCategory cIndex mIndex oIndex, Morphism mIndex oIndex, Eq oIndex, Eq mIndex) => CocompleteCategory (FinCat c m o) (FinFunctor c m o) c (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) cIndex mIndex oIndex Source # | Note that computing a |
Defined in Math.FiniteCategories.ColimitCategory colimit :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Cocone cIndex mIndex oIndex (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) Source # coprojectBase :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Diagram (FinCat c m o) (FinFunctor c m o) c (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) Source # | |
(FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o, FiniteCategory cIndex mIndex oIndex, Morphism mIndex oIndex, Eq cIndex, Eq mIndex, Eq oIndex) => CompleteCategory (FinCat c m o) (FinFunctor c m o) c (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) cIndex mIndex oIndex Source # | |
Defined in Math.FiniteCategories.LimitCategory limit :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Cone cIndex mIndex oIndex (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) Source # projectBase :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Diagram (FinCat c m o) (FinFunctor c m o) c (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) Source # | |
(Eq n, Eq e) => HasCoequalizers (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) Source # | |
Defined in Math.FiniteCategories.ColimitCategory coequalize :: Diagram Parallel ParallelAr ParallelOb (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) -> Cocone Parallel ParallelAr ParallelOb (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) Source # | |
(Eq e, Eq n, Eq oIndex) => HasCoproducts (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) (FinCat (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (FinFunctor (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) oIndex Source # | |
Defined in Math.FiniteCategories.ColimitCategory coproduct :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) -> Cocone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinCat (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (FinFunctor (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) Source # | |
type Rep (FinCat c m o) Source # | |
Defined in Math.Categories.FinCat type Rep (FinCat c m o) = D1 ('MetaData "FinCat" "Math.Categories.FinCat" "FiniteCategories-0.6.3.1-inplace" 'False) (C1 ('MetaCons "FinCat" 'PrefixI 'False) (U1 :: Type -> Type)) |
Orphan instances
(Category c m o, Morphism m o, Eq m, Eq o) => Morphism (FinFunctor c m o) c Source # | |
(@) :: FinFunctor c m o -> FinFunctor c m o -> FinFunctor c m o Source # (@?) :: FinFunctor c m o -> FinFunctor c m o -> Maybe (FinFunctor c m o) Source # source :: FinFunctor c m o -> c Source # target :: FinFunctor c m o -> c Source # |