Doctrines

Catlab.Doctrines.AbelianBicategoryRelationsModule

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"
source
Catlab.Doctrines.BicategoryRelationsModule

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
source
Catlab.Doctrines.BiproductCategoryModule

Doctrine of bicategory category

Also known as a semiadditive category.

FIXME: This signature should extend MonoidalCategoryWithBidiagonals, CartesianCategory, and CocartesianCategory, but multiple inheritance is not yet supported.

source
Catlab.Doctrines.CategoryModule

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).

source
Catlab.Doctrines.DaggerCompactCategoryModule

Doctrine of dagger compact category

In a dagger compact category, there are two kinds of adjoints of a morphism f::Hom(A,B), the adjoint mate mate(f)::Hom(dual(B),dual(A)) and the dagger adjoint dagger(f)::Hom(B,A). In the category of Hilbert spaces, these are respectively the Banach space adjoint and the Hilbert space adjoint (Reed-Simon, Vol I, Sec VI.2). In Julia, they would correspond to transpose and adjoint in the official LinearAlegbra module. For the general relationship between mates and daggers, see Selinger's survey of graphical languages for monoidal categories.

FIXME: This signature should extend both DaggerCategory and CompactClosedCategory, but multiple inheritance is not yet supported.

source
Catlab.Doctrines.FreeCartesianCategoryModule

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.

source
Catlab.Doctrines.FreeCocartesianCategoryModule

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.

source
Catlab.Doctrines.MonoidalCategoryModule

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.

source
Catlab.Doctrines.MonoidalCategoryWithBidiagonalsModule

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 multiple inheritance is not yet supported.

source
Catlab.Doctrines.MonoidalCategoryWithCodiagonalsModule

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.

source
Catlab.Doctrines.MonoidalCategoryWithDiagonalsModule

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"
source
Base.collectMethod

Collect generators of object in monoidal category as a vector.

Base.ndimsMethod

Number of "dimensions" of object in monoidal category.