Catlab.Doctrines API
Doctrine of abelian bicategory of relations
Unlike Carboni & Walters, we use additive notation and nomenclature.
References:
- Carboni & Walters, 1987, "Cartesian bicategories I", Sec. 5
- Baez & Erbele, 2015, "Categories in control"
Catlab.Doctrines.BicategoryRelations
— Module.Doctrine of bicategory of relations
TODO: The 2-morphisms are missing. I haven't decided how to handle them yet.
References:
- Carboni & Walters, 1987, "Cartesian bicategories I"
- Walters, 2009, blog post, "Categorical algebras of relations", http://rfcwalters.blogspot.com/2009/10/categorical-algebras-of-relations.html
Catlab.Doctrines.BiproductCategory
— Module.Doctrine of bicategory category
Also known as a semiadditive category.
FIXME: This signature should extend MonoidalCategoryWithBidiagonals
, CartesianCategory
, and CocartesianCategory
, but we don't support multiple inheritance.
Catlab.Doctrines.CartesianCategory
— Module.Doctrine of cartesian category
Actually, this is a cartesian symmetric monoidal category but we omit these qualifiers for brevity.
Catlab.Doctrines.CartesianClosedCategory
— Module.Doctrine of cartesian closed category (aka, CCC)
A CCC is a cartesian category with internal homs (aka, exponential objects).
Catlab.Doctrines.Category
— Module.Doctrine of category (with no extra structure)
Warning: We compose functions from left to right, i.e., if f:A→B and g:B→C then compose(f,g):A→C. Under this convention function are applied on the right, e.g., if a∈A then af∈B.
We retain the usual meaning of the symbol ∘ (\circ), i.e., g∘f = compose(f,g). This usage is too entrenched to overturn, inconvenient though it may be. We use symbol ⋅ (\cdot) for diagrammatic composition: f⋅g = compose(f,g).
Catlab.Doctrines.Category2
— Module.Doctrine of (strict) 2-category
Catlab.Doctrines.CocartesianCategory
— Module.Doctrine of cocartesian category
Actually, this is a cocartesian symmetric monoidal category but we omit these qualifiers for brevity.
Catlab.Doctrines.CompactClosedCategory
— Module.Doctrine of compact closed category
Catlab.Doctrines.DaggerCategory
— Module.Doctrine of dagger category
Catlab.Doctrines.DaggerCompactCategory
— Module.Doctrine of dagger compact category
FIXME: This signature should extend both DaggerCategory
and CompactClosedCategory
, but we don't support multiple inheritance yet.
Catlab.Doctrines.FreeCartesianCategory
— Module.Syntax for a free cartesian category.
In this syntax, the pairing and projection operations are defined using duplication and deletion, and do not have their own syntactic elements. Of course, this convention could be reversed.
Syntax for a free cartesian closed category.
See also FreeCartesianCategory
.
Catlab.Doctrines.FreeCategory2
— Module.Syntax for a 2-category.
Checks domains of morphisms but not 2-morphisms.
Catlab.Doctrines.FreeCocartesianCategory
— Module.Syntax for a free cocartesian category.
In this syntax, the copairing and inclusion operations are defined using merging and creation, and do not have their own syntactic elements. Of course, this convention could be reversed.
Catlab.Doctrines.MonoidalCategory
— Module.Doctrine of monoidal category
To avoid associators and unitors, we assume the monoidal category is strict. By the coherence theorem there is no loss of generality, but we may add a signature for weak monoidal categories later.
Doctrine of monoidal category with bidiagonals
The terminology is nonstandard (is there any standard terminology?) but is intended to mean a monoidal category with coherent diagonals and codiagonals. Unlike in a biproduct category, the naturality axioms need not be satisfied.
FIXME: This signature should extend both MonoidalCategoryWithDiagonals
and MonoidalCategoryWithCodiagonals
, but we don't support multiple inheritance.
Doctrine of monoidal category with codiagonals
A monoidal category with codiagonals is a symmetric monoidal category equipped with coherent collections of merging and creating morphisms (monoids). Unlike in a cocartesian category, the naturality axioms need not be satisfied.
For references, see MonoidalCategoryWithDiagonals
.
Doctrine of monoidal category with diagonals
A monoidal category with diagonals is a symmetric monoidal category equipped with coherent collections of copying and deleting morphisms (comonoids). Unlike in a cartesian category, the naturality axioms need not be satisfied.
References:
- Selinger, 2010, "A survey of graphical languages for monoidal categories", Section 6.6: "Cartesian center"
- Selinger, 1999, "Categorical structure of asynchrony"
Doctrine of symmetric monoidal category
The signature (but not the axioms) is the same as a braided monoidal category.
Base.collect
— Method.Collect generators of object in monoidal category as a vector.
Base.ndims
— Method.Number of "dimensions" of object in monoidal category.
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Catlab.Doctrines.Category.Hom
— Type.Morphism in a category
Catlab.Doctrines.Category.Ob
— Type.Object in a category
Catlab.Doctrines.Category2.Hom
— Type.Morphism in a category
Catlab.Doctrines.Category2.Hom2
— Type.2-morphism in a 2-category
Catlab.Doctrines.Category2.Ob
— Type.Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Catlab.Doctrines.FreeCategory.Ob
— Type.Object in a category
Morphism in a category
2-morphism in a 2-category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category
Morphism in a category
Object in a category