Spahn type category

Definition

A type category is defined to be a category satisfying the following conditions:

(1) For each object X∈CX\in C there is a collection Type C(X)Type_C(X) whose elements are called XX-indexed types in CC.

(2) For each object X∈CX\in C operations assigning to each XX-indexed type AA an object X⋉AX \ltimes A called the total object of AA, together with a morphism

p A:X⋉A→Xp_A:X \ltimes A \to X

called the projection morphism of AA.

(3) For each morphism f:Y→Xf:Y\to X in CC, an operation assigning to each XX-indexed type AA, a YY indexed type f *Af^* A called the pullback of AA along XX, together with a morphism f⋉A:Y⋉f *A→X⋉Af\ltimes A:Y\ltimes f^* A\to X\ltimes A making the following a pullback square in the category CC.

Y⋉f *A →f⋉A X⋉A ↓ p f *A ↓ p A Y →fX\array{ Y\ltimes f^* A&\stackrel{f\ltimes A}{\to}&X\ltimes A \\ \downarrow^{p_{f^* A}}&&\downarrow^{p_A} \\ Y&\stackrel{f}{\to} X }

In addition the following strictness conditions will be imposed

id X *A=Aid^*_X A=A
id X⋉A=id X⋉Aid_X\ltimes A=id_{X\ltimes A}
g *(f *A)=(f∘g) *Ag^*(f^* A)=(f\circ g)^* A
(f⋉A)∘(g⋉f *A)=(f∘g)⋉A(f\ltimes A)\circ (g\ltimes f^* A)=(f\circ g)\ltimes A

Reference