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.