Skip to the Main Content

Note:These pages make extensive use of the latest XHTML and CSS Standards. They ought to look great in any standards-compliant modern browser. Unfortunately, they will probably look horrible in older browsers, like Netscape 4.x and IE 4.x. Moreover, many posts use MathML, which is, currently only supported in Mozilla. My best suggestion (and you will thank me when surfing an ever-increasing number of sites on the web which have been crafted to use the new standards) is to upgrade to the latest version of your browser. If that's not possible, consider moving to the Standards-compliant and open-source Mozilla browser.

August 10, 2024

Prismatic Category Theory

Posted by Tom Leinster

Guest post by C.B. Aberlé and Rubén Maldonado

Fibrations are a fundamental concept of category theory and categorical logic that have become increasingly relevant to the world of applied category theory thanks to their prominent use in applications such as the categorical semantics of dependent type theory, the study of dynamical systems, etc. With the increasing occurrence of higher-categorical structures in these applications, there is an evident need for both pure and applied category theorists to develop and refine higher-categorical analogues of the ordinary theory of fibrations.

This blog post aims to sketch the basis of a general framework for the study of higher-categorical fibrations. We begin with a recap of the fundamental building-blocks of the theory of Grothendieck fibrations, including Cartesian arrows and the Grothendieck construction. In doing so, we develop a simple graphical framework for studying properties of functors. An analysis of this framework then reveals that it can be interpreted in the internal language of the topos of simplicial sets, which paves the way for studying fibrations on higher-categorical structures such as double categories.

Fibres: from functions to functors

By way of motivating example, we begin with a comparison of notions of fibre for functions between sets and functors between categories, respectively. Recall that, for any function f:XYf : X \to Y and yYy \in Y, the fibre of yy is the subset f 1{y}={xXf(x)=y}f^{-1}\{y\} = \{ x \in X \mid f(x) = y\}, as in the following picture:

error

It follows straightforwardly that X= yYf 1{y}X = \bigsqcup_{y \in Y} f^{-1}\{y\}, i.e. XX is equal to the disjoint union of the fibres of ff. Hence we can always recover the domain of a function from its fibres.

There is an analogous notion of fibre for functors. Let p:p : \mathcal{E} \to \mathcal{B} be a functor, and consider an object bb \in \mathcal{B}. The fibre b\mathcal{E}_b of pp over bb is defined to be the subcategory of \mathcal{E} consisting of all objects ee \in \mathcal{E} such that p(e)=bp(e) = b, and all morphisms f:eef : e \to e' \in \mathcal{E} such that p(f)=id bp(f) = id_b.

error

Can we similarly recover the domain of a functor from its fibres, just as we could for functions? As it turns out, we can in general recover the objects of \mathcal{E} from the fibres of pp, but not necessarily the morphisms of \mathcal{E}, since some morphisms may not belong to any fibre.

error

This naturally prompts the question: what additional structure is needed on pp in order to be able to recover \mathcal{E} from its fibres? The answer to this question lies in the notion of a Grothendieck fibration.

Fibrations, Graphically

From Functors to Prisms

We begin by developing a graphical framework for representing the structure of a functor p:p : \mathcal{E} \to \mathcal{B}, based upon that of Sterling and Angiuli. Given objects aa \in \mathcal{E} and bb \in \mathcal{B} such that p(a)=bp(a) = b, we may think of aa as an object living in the fibre of pp over bb

error

and we depict this arrangement as a dashed vertical arrow from aa to bb:

error

Similarly, given morphisms f:caf : c \to a \in \mathcal{E} and g:dbg : d \to b \in \mathcal{B} such that p(a)=bp(a) = b, p(c)=dp(c) = d, and p(f)=gp(f) = g, we think of ff as lying over gg

error

and depict this as a square between the two dashed arrows corresponding to aa and cc, respectively:

error

Squares of this form can be composed horizontally:

error

In fact, this is just another way of saying that pp preserves composition of morphisms, as in the following picture:

error

Given two such squares that horizontally compose to a third, these naturally arrange themselves into a triangular prism:

error

More generally, since pp must preserve all commuting diagrams in \mathcal{E}, for any diagram in \mathcal{E} living over one in \mathcal{B}, there is a corresponding depiction of this as a prism – e.g. a commuting square in \mathcal{E} over one in \mathcal{B} gives a cube:

error

Cartesian Arrows

Definition. A morphism f:caf : c \to a \in \mathcal{E} lying over g:dbg : d \to b \in \mathcal{B}

error

is called Cartesian if any partial prism as below can be uniquely completed to a prism:

error

In this case, we suggestively write

error

to indicate that the arrow ff is Cartesian.

More generally, for a Cartesian arrow ff as above, any partial prism missing an incoming morphism to cc may be uniquely completed to a corresponding prism, since every commuting diagram may be decomposed into commuting triangles. E.g. any partial cube as below may be uniquely completed to a cube as follows:

error

The analogy of Cartesian squares to pullbacks is no accident – a Cartesian arrow as above may be informally viewed as a “limit” of the following diagram:

error

Following Johnson and Yau, we refer to a diagram of the former shape as a pre-lift, and to a Cartesian arrow completing the square as above as a Cartesian lift.

Like ordinary limits, Cartesian lifts are unique up to isomorphism, as shown in the following diagram:

error

Similarly, the composition of two Cartesian lifts is again Cartesian, since we have

error

Example. For any functor p:p : \mathcal{E} \to \mathcal{B}, every identity in \mathcal{E} is Cartesian:

error

Example. For any category 𝒞\mathcal{C}, let 𝒞 \mathcal{C}^\to be the arrow category of 𝒞\mathcal{C}, i.e. the category whose objects are arrows in 𝒞\mathcal{C} and whose morphisms are commuting squares. Let cod:𝒞 𝒞\mathsf{cod} : \mathcal{C}^\to \to \mathcal{C} be the functor that sends an arrow to its codomain. Then a Cartesian arrow for cod\mathsf{cod} is a pullback in 𝒞\mathcal{C}.

To see as much, note that in the graphical representation of cod\mathsf{cod} the dashed arrows correspond to actual arrows, so e.g.~a square over g:dbg : d \to b is a commuting square

error

Such a square is Cartesian if any diagram as below can be uniquely completed to a prism:

error

which is equivalent to the universal property of a pullback.

Definition. A functor p:p : \mathcal{E} \to \mathcal{B} is a Grothendieck fibration (or fibration for short) if every pre-lift has a Cartesian lift. Much like ordinary limits, although Cartesian lifts are unique up to isomorphism, there may in fact be many possible choices of such lifts. A cloven fibration is a fibration equipped with a specific choice, for each pre-lift, of a corresponding Cartesian lift. A cloven fibration is called split if:

  • for every object bb \in \mathcal{B}, the chosen lift of id bid_b and a ba \in \mathcal{E}_b is id aid_a

  • for every pair k:sd,~g:dbk : s \to d, ~ g : d \to b \in \mathcal{B} of composable morphisms, the chosen lift of gkg \circ k and a ba \in \mathcal{E}_b is equal to the composite of the chosen lift of gg and the chosen lift of kk.

Example. If \mathcal{B} is a discrete category (i.e. every morphism is an identity) then any functor p:p : \mathcal{E} \to \mathcal{B} is a fibration, since, as we have already seen, the Cartesian lift of any identity in \mathcal{B} is an identity in \mathcal{E}.

In particular, since sets are equivalently discrete categories, and functions between sets are equivalently functors between discrete categories, it follows that every function between sets (viewed as discrete categories) is a fibration. So in our initial motivating example concerning fibres of functions, we were in fact already implicitly working with fibrations.

Example. A category 𝒞\mathcal{C} for which cod:𝒞 𝒞\mathsf{cod} : \mathcal{C}^\to \to \mathcal{C} is a fibration is equivalently a category with all pullbacks. cod\mathsf{cod} is moreover a split fibration if and only if the operation of taking successive pullbacks is strictly (unital and) associative, i.e.

error

This is particularly relevant when interpreting pullbacks as a kind of substitution, as in e.g. the categorical semantics of dependent type theory.

Lemma. Let p:p : \mathcal{E} \to \mathcal{B} be a fibration and let f:ccf':c'\to c be any morphism in \mathcal{E}. It follows that ff' factors as f=fγf'=f \circ \gamma where f:acf:a\to c is the Cartesian lift of p(f)p(f') and γ:ca\gamma:c'\to a is in the fibre of dd.

error

Hence every morphism in \mathcal{E} factors as a composite of a Cartesian arrow, and an arrow in the fibre of an object in \mathcal{B}. Intuitively, Cartesian lifts “connect” the fibres of pp to one another. In fact, we can make this idea precise, by the following observation:

Observation. In a Grothendieck fibration, every morphism g:dbg : d \to b \in \mathcal{B} determines a functor g *: b dg^* : \mathcal{E}_b \to \mathcal{E}_d, defined on objects as follows:

error

and on morphisms as follows:

error

Hence in a fibration p:p : \mathcal{E} \to \mathcal{B}, the morphisms in \mathcal{B} provide a way to “travel” from one fibre to another, as in the following picture:

error

This structure of functors between fibres determines a pseudofunctor opCat\mathcal{B}^{op} \to \mathbf{Cat} that maps an object bb\in \mathcal{B} to b\mathcal{E}_b; and maps a morphism gg in \mathcal{B} to g*g*.

The above answers our original motivating question of how to recover the morphisms of \mathcal{E} from the structure of the fibres of pp. In fact, we can go even further and construct (a category isomorphic to) \mathcal{E} out of the fibres of pp by “gluing” them together along the functors induced by morphisms in \mathcal{B}. This is precisely what the Grothendieck construction accomplishes.

The Grothendieck Construction

A principal raison d’être behind fibrations is to simplify the process of working with indexed categories. Given a base category \mathcal{B}, a \mathcal{B}-indexed category is a family of categories F(x)F(x) indexed by objects xx \in \mathcal{B}, such that morphisms xyx \to y \in \mathcal{B} contravariantly induce a functors F(y)F(x)F(y) \to F(x), in a manner which preserves identities and composition of morphisms in \mathcal{B} up to coherent isomorphism. Equivalently, a \mathcal{B}-indexed category is a pseudofunctor opCat\mathcal{B}^{op} \to \mathbf{Cat}.

We have just seen how every fibration p:p : \mathcal{E} \to \mathcal{B} gives rise to a \mathcal{B}-indexed category structure on its fibres. In fact, as we shall see, indexed categories are equivalent to fibrations. The key construct behind this equivalence is the Grothendieck construction, which can be viewed more generally as a way of reconstructing a functor from its graphical representation as described above. To make this idea precise, we make use of the notion of displayed categories – introduced by Ahrens and Lumsdaine – as a common generalization of indexed categories and the graphical representation of functors given above.

Definition. Given a base category \mathcal{B}, a displayed category over \mathcal{B} is a formal description of the graphical structure of a functor with codomain \mathcal{B}, consisting of:

  • For each object bb \in \mathcal{B}, a set of vertical arrows

    error

  • for each morphism g:dbg : d \to b \in \mathcal{B} with vertical arrows aa into bb and cc into dd, a set of squares

    error

    together with identity squares and an operation of horizontal composition of squares that is unital and associative.

By definition, for any \mathcal{B}-displayed category 𝒟\mathcal{D}, taking vertical arrows of 𝒟\mathcal{D} as objects, and squares between these as morphisms, defines a category b𝒟(b)\int^{b \in \mathcal{B}} \mathcal{D}(b) – the Grothendieck Construction of 𝒟\mathcal{D}

error

Straightforwardly, there is a functor π:( b𝒟(b))\pi : \left( \int^{b \in \mathcal{B}}\mathcal{D}(b) \right) \to \mathcal{B}, which sends each vertical arrow/square in 𝒟\mathcal{D} to the object/morphism in \mathcal{B} over which it lies. This construction of π\pi realizes 𝒟\mathcal{D} as a functor into \mathcal{B}, such that the graphical representation of π\pi is precisely 𝒟\mathcal{D}.

Conversely, given a functor p:p : \mathcal{E} \to \mathcal{B}, the Grothendieck construction of its corresponding displayed category yields a functor p:p' : \mathcal{E}' \to \mathcal{B} such that there is an isomorphism of categories e:e : \mathcal{E} \cong \mathcal{E}' that commutes with pp and pp'.

Hence functors are equivalent to displayed categories, via the Grothendieck construction, and we have already seen how every fibration gives rise to an indexed category. To show that the Grothendieck construction descends to an equivalence between fibrations and indexed categories, it thus suffices to show that every indexed category corresponds to a displayed category with the universal property of a fibration.

From pseudofunctors to fibrations: Let F: opCatF : \mathcal{B}^{op} \to \mathbf{Cat} be a pseudofunctor. We define a displayed category F\int F over \mathcal{B} as follows:

  • For each object bb \in \mathcal{B}, an object lying over bb is an object of F(b)F(b).

  • For each morphism g:dbg : d \to b \in \mathcal{B}, for objects cF(d)c \in F(d) and aF(b)a \in F(b), a morphism ff from cc to aa over gg is a morphism f:cF(g)(a)F(d)f : c \to F(g)(a) \in F(d) where F(g):F(b)F(d)F(g) : F(b) \to F(d) is the functorial action of FF on gg.

  • For each object bb \in \mathcal{B} with aF(b)a \in F(b), the identity square is given by id a:aF(id b)(a)id_a : a \to F(id_b)(a), and the composition of f:aF(g)(c)f : a \to F(g)(c) and h:cF(k)(e)h : c \to F(k)(e) is given by afF(g)(c)F(g)(h)F(g)(F(k)(e))F(kg)(e) a \xrightarrow{f} F(g)(c) \xrightarrow{F(g)(h)} F(g)(F(k)(e)) \simeq F(k \circ g)(e)

Moreover, F\int F has the universal property of a fibration, since for any pre-lift consisting of g:dbg : d \to b \in \mathcal{B} and aF(b)a \in F(b) as below, we may take the Cartesian lift to be the object F(g)(a)F(d)F(g)(a) \in F(d), along with the identity id F(g)(a):F(g)(a)F(g)(a)id_{F(g)(a)} : F(g)(a) \to F(g)(a):

error

which is indeed Cartesian, since any diagram as below can be uniquely completed to a triangular prism, by pseudofunctoriality:

error

This correspondence between indexed categories and fibrations can be extended to a 2-equivalence between the 2-category of \mathcal{B}-indexed categories and the 2-category Fib\mathbf{Fib}\mathcal{B} of fibrations over \mathcal{B}:

Theorem. There is a 2-equivalence :[ op,Cat] psFib\int : [\mathcal{B}^{op},\mathbf{Cat}]^{ps} \to \mathbf{Fib}\mathcal{B}.

We provide a brief description of these 2-categories and how \int acts on cells in the following subsections.

The 2-category of BB-indexed categories

In this subsection, we introduce the 2-category [ op,Cat] ps[\mathcal{B}^{op},\mathbf{Cat}]^{ps}.

Definition. For any category \mathcal{B}, the 2-category denoted as [ op,Cat] ps[\mathcal{B}^{op},\mathbf{Cat}]^{ps} consist of the following:

Objects. Pseudounctors F: opCatF:\mathcal{B}^{op}\to \mathbf{Cat}.

1-cells. Strong natural transformations. A strong natural transformation σ:FG\sigma: F \to G consists of a collection of functors σ b:F(b)G(b)\sigma_b: F(b)\to G(b) indexed by object bb\in \mathcal{B}. For every morphism g:dbg:d\to b in \mathcal{B}, the following diagram must commute up to coherent isomorphism:

error

2-cells. Modifications. A modification Γ:σσ\Gamma:\sigma\to \sigma' between two strong natural transformations σ,σ:FG\sigma', \sigma: F\to G is a collection of natural transformations Γ b:σ bσ b\Gamma_b: \sigma_b\to \sigma'_b for every bb\in \mathcal{B}, such that for any g:dbg:d\to b in \mathcal{B}, the following whiskering diagram commutes:

error

The 2-category of fibrations

Definition. For any category \mathcal{B}, the 2-category denoted as Fib\mathbf{Fib}\mathcal{B} consists of the following:

Objects. Fibrations p:p:\mathcal{E}\to \mathcal{B}.

1-cells. The 1-cells between two fibrations p:p:\mathcal{E}\to \mathcal{B} and q:q:\mathcal{E}'\to \mathcal{B} are cartesian functors. Those are functors Λ:\Lambda: \mathcal{E}\to \mathcal{E}' that make the diagram commute

error

and send cartesian arrows to cartesian arrows.

2-cells. The 2-cells are vertical natural transformations, which is to say: natural transformations η:ΛΛ\eta:\Lambda \to \Lambda' between cartesian functors Λ:pq\Lambda: p \to q and Λ:pq\Lambda':p\to q that make the following whiskering diagram commute:

error

In the first part of this section, we described how to construct a fibration p:Fp:\int F \to \mathcal{B} from a pseudofunctor opCat\mathcal{B}^{op} \to \mathbf{Cat}. Finally, in order to better understand the 2-equivalence \int, we define its action on 1-cells and 2-cells:

error

Definition. Let F: opCatF:\mathcal{B}^{op}\to\mathbf{Cat} and G: opCatG:\mathcal{B}^{op}\to\mathbf{Cat} be objects in [ op,Cat] ps[\mathcal{B}^{op},\mathbf{Cat}]^{ps}, and let σ:FG\sigma:F\to G be a natural transformation. The cartesian functor σ:FG\int\sigma: \int F \to \int G:

  • maps objects according to σ\sigma

    error

  • similarly, it maps morphisms according to σ\sigma

    error

Definition. Let Γ:σσ\Gamma: \sigma\to \sigma' be a modification. The vertical natural transformation Γ:σσ\int\Gamma: \int\sigma \to \int\sigma' is defined for every pair (b,a)(b,a) in F\int F as the morphism

error

Example. Given an indexed category F: opCatF : \mathcal{B}^{op} \to \mathbf{Cat}, its fibrewise opposite is the pseudofunctor F() op: opCatF(-)^{op} : \mathcal{B}^{op} \to \mathbf{Cat} that maps bb \in \mathcal{B} to F(b) opF(b)^{op}.

Passing from this to the functor π:( bF(b) op)\pi : \left( \int^{b \in \mathcal{B}} F(b)^{op} \right) \to \mathcal{B} via the Grothendieck construction, the objects of each fibre of π\pi are the same as those of FF, but now for any morphism g:dbg : d \to b \in \mathcal{B}, a morphism ff lying over this in bF(b) op\int^{b \in \mathcal{B}} F(b)^{op} goes in the opposite direction as gg. We may depict this graphically as a “twisted” square:

error

and we refer to squares of this form as “lenses”. Lenses compose horizontally, but note now how composition upstairs goes in the opposite direction as downstairs:

error

The category bF(b) op\int^{b \in \mathcal{B}}F(b)^{op} obtained from this construction is called the category of lenses of FF, and is of central importance in the emerging field of categorical systems theory. The essential idea behind the use of lenses in categorical systems theory is that lenses provide a good model of bidirectional processes – i.e. processes that interact with one another by both sending information (along the lower – “forward” – map) and receiving information (along the upper – “backward” – map).

Myers has shown how this definition of lenses gives rise to a certain kind of doubly-indexed category, whose structure allows one to study the compositional properties of behaviors of dynamical systems. Such a doubly-indexed category should correspond, via a double-categorical analogue of the Grothendieck construction, to a particular double fibration.

To better understand constructions of this sort, and their applications in categorical systems theory and beyond, we are interested in developing methods of working with such higher-categorical structures that allow us to manage the oft-complicated coherence conditions that arise thereabouts. For this purpose, it is useful to work synthetically with such structures – i.e. by working in the internal language of some well-structured category in which these structures naturally reside. As it happens, we have already been implicitly using such a synthetic approach in our discussion of fibrations up to this point, which we now specify more precisely.

Fibrations, Synthetically

In our previous – prismatic – study of fibrations, we saw how the property of being a Cartesian arrow for a functor/displayed category could be reduced to that of every commuting triangle in the base category with a specified boundary lifting uniquely to a filling for the corresponding triangular prism. This suggests that a synthetic framework for reasoning about shapes such as triangles, prisms, etc., ought to be a good setting in which to study the sorts of constructions we have encountered in previous sections.

A suitable category whose internal language allows us to represent and reason about such shapes is the category of simplicial sets Δ^\widehat{\Delta}. There are several properties of Δ^\widehat{\Delta} that make it a good setting for the synthetic study of (higher) categories, fibrations, etc. In particular, it is a (presheaf) topos, which for our purposes means that its internal language supports all the usual constructs of dependent type theory, specifically:

  • Types AA, containing elements x:Ax : A.

  • Subtypes, where {xϕ(x)}A\{x\mid \phi(x)\} \subseteq A is the type containing all elements x:Ax : A that satisfy ϕ(x)\phi(x).

  • Dependent types, where a family B(x)B(x) of types dependent upon x:Ax : A is such that B(a)B(a) is a type for each a:Aa : A.

  • Dependent function types, where Π x:AB(x)\Pi_{x : A} B(x) is the type of functions ff such that f(a):B(a)f(a) : B(a) for all a:Aa : A. In the case where BB does not depend upon AA, this reduces to the usual function type ABA \to B.

  • Dependent pair types, where Σ x:AB(x)\Sigma_{x : A} B(x) is the type of pairs (a,b)(a,b) such that a:Aa : A and b:B(a)b : B(a). In the case where BB does not depend upon AA, this reduces to the usual product type A×BA \times B.

A key property of the internal type-theoretic language of Δ^\widehat{\Delta} (as developed in the more general setting of simplicial spaces by Riehl and Shulman) is that it includes a special type Δ 1\Delta^1, corresponding to the standard 1-simplex, equipped with the following additional structure:

  • There are two distinguished elements 0,1:Δ 10,1 : \Delta^1

  • Δ 1\Delta^1 is totally ordered by a binary relation \leq for which 00 is the least element and 11 is the greatest element.

(For those who know a bit of topos theory, this is due to the fact that Δ^\widehat{\Delta} is the classifying topos of bounded total orders). We think of Δ 1\Delta^1 as representing an abstract line segment or path with 00 and 11 as designated endpoints, as follows:

error

Using the language of dependent type theory, we can then build more complex shapes out of such paths. In particular, the Cartesian product of two line segments – i.e. Δ 1×Δ 1\Delta^1 \times \Delta^1 – is a square, i.e.

error

while a triangle may be represented as the portion of such a square lying above the diagonal:

error

corresponding to the following subtype of the square Δ 1×Δ 1\Delta^1 \times \Delta^1: Δ 2:={(x,y)xy}Δ 1×Δ 1\Delta^2 := \{(x,y) \mid x \leq y\} \subseteq \Delta^1 \times \Delta^1 More generally, the standard nn-simplex may be defined as the type Δ n:={(x 1,,x n)x 1x n}Δ 1××Δ 1\Delta^n := \{(x_1, \dots, x_n) \mid x_1 \leq \dots \leq x_n \} \subseteq \Delta^1 \times \dots \times \Delta^1 as these are in fact equivalent to the Yoneda embeddings in Δ^\widehat{\Delta} of the standard simplices in the simplex category Δ\Delta.

We may then use these abstract shapes to detect corresponding structure in other types by mapping into them. E.g. a path from aa to bb in a type AA is a function f:Δ 1Af : \Delta^1 \to A such that f(0)=af(0) = a and f(1)=bf(1) = b, and we write Path A(a,b)\mathsf{Path}_A(a,b) for the type of such paths, and depict them the same as morphisms in categories, using directed arrows, i.e.

error

In particular, there are three non-trivial (i.e. non-constant) functions Δ 1Δ 2\Delta^1 \to \Delta^2, namely the functions that map i:Ii : I to (0,i),~(i,1)(0,i), ~ (i,1), and (i,i)(i,i), respectively, which together pick out the three paths on the boundary of Δ 2\Delta^2 as follows:

error

Hence given a type AA with a,b,c:Aa,b,c : A and f:Path A(a,b)f : \mathsf{Path}_A(a,b) and g:Path A(b,c)g : \mathsf{Path}_A(b,c) and h:Path A(a,c)h : \mathsf{Path}_A(a,c), a triangle in AA with boundary given by f,g,hf,g,h as depicted below

error

is a function k:Δ 2Ak : \Delta^2 \to A such that k(0,i)=f(i)k(0,i) = f(i), k(i,1)=g(i)k(i,1) = g(i), and k(i,i)=h(i)k(i,i) = h(i) for all i:Δ 1i : \Delta^1.

In order to recover ordinary category theory in this setting, we should have some way of viewing the language of categories as somehow embedded in that of simplicial sets. For a given type AA in the language of simplicial sets, a triangle

error

in AA may be thought of as a witness to the fact that hh is a valid solution to the problem of composing ff and gg. A category is then just a type where – in the internal language of Δ^\widehat{\Delta} – every such “composition problem” has a unique solution, i.e. for any a,b,c:Aa,b,c : A with f:Path A(a,b)f : \mathsf{Path}_A(a,b) and g:Path A(b,c)g : \mathsf{Path}_A(b,c), there is a unique completion of this to a triangle as follows:

error

One straightforwardly verifies that the uniqueness of such solutions implies the associativity of composition, since for any composable sequence of paths afbgchdAa \xrightarrow{f} b \xrightarrow{g} c \xrightarrow{h} d \in A, a solution to the composition problem for the triangle formed by gfg \circ f and hh is also a solution to the composition problem for ff and hgh \circ g, and vice versa, so these two solutions must be identical. Unitality of composition follows by similar reasoning.

Hence, in the language of simplicial sets, being a category is only a property of a type. In fact, this definition of categories is equivalent to the embedding CatΔ^\mathbf{Cat} \hookrightarrow \widehat{\Delta} given by the nerve functor. In particular, any function f:ABf : A \to B, where A,BA,B are both categories in the above sense, is automatically a functor in the usual sense, since any path g:Path A(a,b)g : \mathsf{Path}_A(a,b) in AA is taken to a path fg:Path B(f(a),f(b))f \circ g : \mathsf{Path}_B(f(a),f(b)) in BB, and similarly for triangles, hence ff preserves composition, etc. We can thus suppress much of the bookkeeping to do with checking functoriality conditions, etc., by treating categories as a special kind of simplicial sets, and working in the internal language of the latter.

This simplification is especially apparent when we consider the interpretation of our prior treatment of displayed categories and the Grothendieck construction in this framework. Given a family of types E(x)E(x) dependent upon x:Bx : B, we may think of an element a:E(b)a : E(b) for b:Bb : B as living over aa in the structure of EE, and represent this using our dashed vertical arrow notation from before:

error

Then for b,d:Ab,d : A with a:E(b)a : E(b) and c:E(d)c : E(d) and a path g:Path B(d,b)g : \mathsf{Path}_B(d,b), we may define a path from cc to aa lying over gg as a dependent function f:Π i:Δ 1.C(f(i))f : \Pi_{i : \Delta^1}. C(f(i)) such that f(0)=cf(0) = c and f(1)=af(1) = a. We may depict this just as we did in the case of functors/displayed categories as a square, i.e.:

error

And similarly, for such a family of types E(x)E(x) dependent upon x:Bx : B, given a triangle k:Δ 2Bk : \Delta^2 \to B with boundary f,g,hf,g,h in BB, and paths f,g,hf',g',h' lying over these, respectively, a prism as depicted in the following diagram

error

corresponds to a dependent function k:Π (i,j):Δ 2.C(k(i,j))k' : \Pi_{(i,j) : \Delta^2} . C(k(i,j)) such that k(0,i)=f(i)k'(0,i) = f'(i), k(i,1)=g(i)k'(i,1) = g'(i) and k(i,i)=h(i)k'(i,i) = h'(i) for all i:Ii : I.

Given such a type family E(x)E(x) dependent upon x:Bx : B, the Grothendieck construction of EE may be interpreted in Δ^\widehat{\Delta} as the dependent pair type Σ x:B.E(x)\Sigma_{x : B} . E(x) whose elements are pairs (b,a)(b,a) with b:Bb : B and a:E(b)a : E(b).

That a path (d,c)(b,a)(d,c) \to (b,a) in Σ x:B.E(x)\Sigma_{x : B} . E(x) is equivalently a square consisting of g:dbg : d \to b and f:caf : c \to a follows from the distributivity of function types over pair types, i.e. Δ 1Σ x:B.E(x)Σ f:Δ 1B.Π i:Δ 1.E(f(i))\Delta^1 \to \Sigma_{x : B} . E(x) \cong \Sigma_{f : \Delta^1 \to B} . \Pi_{i : \Delta^1} . E(f(i))

If BB is a category in Δ^\widehat{\Delta}, then a type family E(x)E(x) dependent upon x:Bx : B is a displayed category if every partial prism has a unique completion as follows:

error

And just as before, a dependent path ff lying over gg is Cartesian iff every partial prism has a unique completion as follows:

error

Hence we can interpret all of our previous definitions and constructions regarding fibrations, the Grothendieck construction, etc., into this simplicial framework, by simply translating the shapes occurring in these constructions into corresponding types and functions in the internal language of simplicial sets.

As a final illustration of this, we now sketch how this technique may be used to give economical definitions of both double categories and double fibrations.

A Recipe for Double-Categorical Structure

In the above, we have defined categories in one way as certain types in the internal language of Δ^\widehat{\Delta}. But since this internal language supports all the usual constructs of dependent type theory, we can just as well define category objects internally in simplicial set in the usual way, i.e. as a type of objects Ob\text{Ob} and a type family Hom(x,y)\text{Hom}(x,y) dependent upon x,y:Obx,y : \text{Ob} together with an associative and unital composition operation and identities.

Recall that a (strict) double category is equivalently a category object internal to Cat\mathbf{Cat}. Since the definition of an internal category object makes use only of (finite) limits, which are preserved by the nerve functor CatΔ^\mathbf{Cat} \to \widehat{\Delta} (since it is a right adjoint), it follows that an internal category object in Δ^\widehat{\Delta} whose component types are all nerves of categories is equivalently a strict double category.

Hence again in the language of simplicial sets, we can reduce being a double category to a mere property of an internal category object (namely the property that its types of objects and morphisms are themselves nerves of categories). Moreover, an (internal) functor between such categories is then automatically a double functor.

Finally, we note that such a double functor, viewed as an ordinary functor in the language of simplicial sets, may be considered a fibration in two distinct ways: either by requiring that it satisfy the ordinary property of a Grothendieck fibration – as a functor between internal categories – or that each of its component functions (i.e. those mapping objects/morphisms of the domain to those of the codomain) themselves be fibrations in the simplicial sense defined above. We conjecture that requiring both of these properties to hold is equivalent (in the strict case) to the definition of double fibrations given by Cruttwell, Lambert, Pronk and Szyld, wherein they define a double fibration as an internal category in the 2-category of fibrations over arbitrary bases. We hope to further explore this connection and perhaps prove this conjecture during the upcoming research week for the Adjoint School!

Much remains to be done in fleshing out the theory of double fibrations. We hope that the above-described framework may be a valuable tool for this direction of study. In particular, we are interested to know how much of the ordinary theory of fibrations translates to double fibrations, and we hope that this framework can unify and simplify the task of answering these questions, by translating ordinary categorical definitions into the internal language of simplicial sets, and seeing how these interact with properties arising from nerves of categories. Because of its type-theoretic flavor, it should moreover be possible to formalize this treatment of (double) fibrations in a proof assistant such as Agda or Lean. All these and other applications we hope to explore further during the Adjoint School research week. For now, we hope to have sufficiently demonstrated the utility and simplifying power of the simplicial approach to fibrations in both pure and applied category theory.

Posted at August 10, 2024 9:37 PM UTC

TrackBack URL for this Entry:   https://golem.ph.utexas.edu/cgi-bin/MT-3.0/dxy-tb.fcgi/3547

2 Comments & 0 Trackbacks

Re: Prismatic Category Theory

Just a PSA that this is not obviously connected with prismatic cohomology, in case anyone was expecting that.

Posted by: David Roberts on August 11, 2024 1:22 AM | Permalink | Reply to this

Re: Prismatic Category Theory

Yes, I strongly suggest that the authors find a different name for whatever it is they are trying to do here

Posted by: Mitchell Porter on August 11, 2024 2:08 AM | Permalink | Reply to this

Post a New Comment