Theories

Catlab.TheoriesModule

Catlab's standard library of generalized algebraic theories.

The focus is on categories and monoidal categories, but other related structures are also included.

Catlab.Theories.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. This convention could be dropped or reversed.

source
Catlab.Theories.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. This convention could be dropped or reversed.

source
Catlab.Theories.BicategoryRelationsType

Theory of bicategories of relations

TODO: The 2-morphisms are missing.

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.Theories.CartesianClosedCategoryType

Theory of cartesian closed categories, aka CCCs

A CCC is a cartesian category with internal homs (aka, exponential objects).

FIXME: This theory should also extend ClosedMonoidalCategory, but multiple inheritance is not yet supported.

source
Catlab.Theories.CategoryType

Theory of categories (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.Theories.CategoryWithProductsType

Theory of a category with (finite) products

Finite products are presented in biased style, via the nullary case (terminal objects) and the binary case (binary products). The equational axioms are standard, especially in type theory (Lambek & Scott, 1986, Section 0.5 or Section I.3).

For a monoidal category axiomatization, see CartesianCategory.

source
Catlab.Theories.CompleteCategoryType

Theory of a (finitely) complete category

Finite limits are presented in biased style, via finite products and equalizers. The equational axioms for equalizers are obscure, but can found in (Lambek & Scott, 1986, Section 0.5), apparently following "Burroni's pioneering ideas".

source
Catlab.Theories.DaggerCompactCategoryType

Theory of dagger compact categories

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 theory should also extend DaggerCategory, but multiple inheritance is not yet supported.

source
Catlab.Theories.DistributiveBicategoryRelationsType

Theory of a distributive bicategory of relations

References:

  • Carboni & Walters, 1987, "Cartesian bicategories I", Remark 3.7 (mention in passing only)
  • Patterson, 2017, "Knowledge representation in bicategories of relations", Section 9.2

FIXME: Should also inherit BicategoryOfRelations, but multiple inheritance is not yet supported.

source
Catlab.Theories.DistributiveMonoidalCategoryType

Theory of a distributive (symmetric) monoidal category

Reference: Jay, 1992, LFCS tech report LFCS-92-205, "Tail recursion through universal invariants", Section 3.2

FIXME: Should also inherit CocartesianCategory.

source
Catlab.Theories.DistributiveSemiadditiveCategoryType

Theory of a distributive semiadditive category

This terminology is not standard but the concept occurs frequently. A distributive semiadditive category is a semiadditive category (or biproduct) category, written additively, with a tensor product that distributes over the biproduct.

FIXME: Should also inherit SemiadditiveCategory

source
Catlab.Theories.HypergraphCategoryType

Theory of hypergraph categories

Hypergraph categories are also known as "well-supported compact closed categories" and "spidered/dungeon categories", among other things.

FIXME: Should also inherit ClosedMonoidalCategory and DaggerCategory, but multiple inheritance is not yet supported.

source
Catlab.Theories.MonoidalCategoryType

Theory of monoidal categories

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 theory for weak monoidal categories later.

source
Catlab.Theories.MonoidalCategoryWithBidiagonalsType

Theory of monoidal categories with bidiagonals

The terminology is nonstandard (is there any standard terminology?) but is supposed to mean a monoidal category with coherent diagonals and codiagonals. Unlike in a biproduct category, the naturality axioms need not be satisfied.

source
Catlab.Theories.MonoidalCategoryWithDiagonalsType

Theory of monoidal categories with diagonals

A monoidal category with diagonals is a symmetric monoidal category equipped with coherent operations of copying and deleting, also known as a supply of commutative comonoids. Unlike in a cartesian category, the naturality axioms need not be satisfied.

References:

  • Fong & Spivak, 2019, "Supplying bells and whistles in symmetric monoidal categories" (arxiv:1908.02633)
  • Selinger, 2010, "A survey of graphical languages for monoidal categories", Section 6.6: "Cartesian center"
  • Selinger, 1999, "Categorical structure of asynchrony"
source
Catlab.Theories.RigCategoryType

Theory of a rig category, also known as a bimonoidal category

Rig categories are the most general in the hierarchy of distributive monoidal structures.

TODO: Do we also want the distributivty and absorption isomorphisms? Usually we ignore coherence isomorphisms such as associators and unitors.

FIXME: This theory should also inherit MonoidalCategory, but multiple inheritance is not supported.

source
Base.collectMethod

Collect generators of object in monoidal category as a vector.

Base.ndimsMethod

Number of "dimensions" of object in monoidal category.