Internal diagrams

Idea

Given a finitely complete categoryEE, one can consider the bicategoryCat(E)Cat(E) of internal categories in EE, and thus internal functors, which are the morphisms in Cat(E)Cat(E). If E=SetE = Set then one can consider not only functors among small categories but also functors of the type F:C→SetF: C\to Set from a small category CC to a large category of sets. In that case one can describe FF as consisting of a C0C_0-indexed family of objects and an action of C1C_1 on the diagram.

Compare the ideas discussed on this page with those at internal profunctor and discrete fibration. All three notions intersect — an internal diagram on CC is the same thing as an internal profunctor C⇸1C &#x21f8; 1, which is the same thing as a discrete opfibration in Cat(E)Cat(E). The three generalize the basic idea in different ways.

Definition

In category theory

Given an internal categoryC∈Cat(E)C\in Cat(E), with the usual structure maps s,t,i,cs,t,i,c, an internal diagramFF on CC (or, of type CC) is given by

It is clear how to define homomorphisms of internal diagrams: a morphism F→GF \to G is given by an E/C0E/C_0-morphism F0→G0F_0 \to G_0 that commutes with the actions ee. Internal diagrams on CC in EE form a category denoted by ECE^C.

In dependent type theory

Using the language ofdependent types, the map d:F0→C0d: F_0 \to C_0 can be seen as the interpretation of a dependent type (X:C0)⊢(F(X):Type)(X:C_0) \,\vdash\, (F(X):Type). The action of C1C_1 on F0F_0 can equivalently be given by the interpretation of a term in context:

The axioms then take a particularly familiar form, also to be interpreted in the internal language of EE: * (X:C0),(a:F(X))⊢p(X,X,idX,a)=a(X:C_0), (a:F(X)) \;\vdash\; p(X,X,id_X,a) = a * (X,Y,Z:C0),(f:C1(X,Y)),(g:C1(Y,Z)),(a:F(X))⊢p(X,Z,g∘f,a)=p(Y,Z,g,p(X,Y,f,a))(X,Y,Z:C_0), (f:C_1(X,Y)), (g:C_1(Y,Z)), (a:F(X)) \;\vdash\; p(X,Z,g \circ f,a) = p(Y,Z,g,p(X,Y,f,a))

Properties

From an internal diagram (F,C,λ,e)(F,C,\lambda,e) one can equip F=(F0,F1)F =(F_0,F_1) with a structure of an internal category over CC. In other words, there is a forgetful functor EC→Cat(E)/CE^C\to Cat(E)/C (where Cat(E)/CCat(E)/C is the corresponding slice category). This functor is fully faithful and its essential image consists precisely of all objects in Cat(E)/CCat(E)/C which are discrete opfibrations. Similarly, the objects of ECopE^{C^{op}} are the discrete fibrations in Cat(E)/CCat(E)/C.

Diagrams in an indexed category

An internal diagram as above may take values in any Grothendieck fibration over EE. Given a fibration in the guise of an indexed categoryF:Sop→CatF : S^{op} \to Cat, a CC-diagram in FF is given by

an object P∈F(C0)P \in F(C_0), together with

a morphism ϕ:s*P→t*P\phi : s^* P \to t^* P in F(C1)F(C_1)

satisfying ‘cocycle equations’

i*ϕ=1Pi^*\phi = 1_P

c*ϕ=p1*ϕ∘p2*ϕc^*\phi = p_1^* \phi \circ p_2^* \phi

modulo coherent isos, where the pip_i are the projections out of C2C_2.

By the Yoneda lemma for bicategories, the object PP determines (up to canonical isomorphism) a pseudonatural α0:E(−,C0)→F0\alpha^0 : E(-,C_0) \to F_0 in [Eop,Cat][E^{op},Cat], where EE is considered as a locally discrete bicategory, and F0(X)=obFXF_0(X) = ob F X considered as a discrete category, such that α0(f)≅f*P\alpha^0(f) \cong f^* P. Similarly, ϕ\phi determines α1:E(−,C1)→F1=arr∘F\alpha^1 : E(-,C_1) \to F_1 = arr \circ F, and α1(g)≅g*ϕ\alpha^1(g) \cong g^* \phi. It is not hard to check that the conditions above correspond to requiring that the αXi\alpha^i_X form a functor E(X,C)→FXE(X,C) \to F X for each XX, and pseudonaturality then makes the CC-diagram (P,ϕ)(P,\phi) equivalent to an indexed functorE(−,C)→FE(-,C) \to F. The category of CC-diagrams in FF is then simply the hom-category [Eop,Cat](E(−,C),F)[E^{op},Cat](E(-,C),F).

Examples

An internal diagram on CC in the sense above is a CC-diagram in the codomain fibration of EE, that is the pseudofunctor X↦E/XX \mapsto E/X.

If EE is equipped with a coverage and CC is the Cech nerve associated to a cover p:U→Xp : U \to X in EE, then the category of CC-diagrams in FF is the descent category Desp(F)Des_p(F).