Dependent product functor
Functor
context | C … Cartesian closed category with all limits |
let | ∏f … right adjoint to the pullback functor f∗, where f is an arrow in C |
context | !X:X→∗ … terminal morphisms for X∈C |
definition | ∏Xp:=dom∏!Xp |
todo: fmap of ∏X
Here f∗ is the pullback functor from C/Y to C/X.
Elaboration
We use Y=∗ and so ∏!Xp is an object in C/∗ and then ∏Xp is an object in C. Note that the slice category C/∗ is equivalent to C, by identifying terminal morphisms !B:B→∗ with their domains B. We force this identification on the objects via the map dom.
Discussion
Let p:E→X define a fibration.
\require{AMScd} \begin{CD} E \\ @V{p}VV \\ X \end{CD}
We want to characterize the space of sections \prod_X p. In terms of sets or any type theory, sections are like functions s that fulfill p\circ s=1_X, except the fibres over points in X may vary. For sets, the condition is s(x)\in p^{-1}(x).
Explanation starting from the exp-hom adjunction
A function space Y^X can be characterized by the isomorphism (A\to Y^X)\cong((A\times X)\to Y). Let us moreover identify (A\times X)\to Y with the space of function from that (A\times X)\to (Y\times X) with the additional requirement that the second component is mapped to itself, i.e. according to the scheme \theta'(\langle a,x\rangle):=\langle \theta(a),x\rangle.
Again, in diagrams: Functions in \require{AMScd} \begin{CD} A @>>> Y^X \end{CD} are in bijection to functions in \require{AMScd} \begin{CD} A\times X @>>> Y \end{CD} which which in turn also correspond to functions from (A\times X)\to(Y\times X) that fulfill projection-condition expressed int the following diagram \require{AMScd} \begin{CD} A\times X @>>> Y\times X \\ @V{\pi_2}VV @V{\pi_2}VV \\ X @= X \end{CD} Essentially, we get the section space \prod_X p that we are after, if we just replace the projection \pi_2:X\times Y\to X with the more general p. The function space we obtain need the not just be Y^X, but can be some more general so called section space. A section of this space must in general then not map an x in X to x in Y\times X, but instead merely map it somehow into p^{-1}(x).
So for an auxiliary object A, consider the projection \pi_2:(A\times X)\to X, formally defined as the arrow obtained by pulling back !_A:A\to* along !_X:X\to*, i.e. \pi_2:=!_X{}^*!_A. This definition is appearent from the commuting square defining the product:
\require{AMScd} \begin{CD} A\times X @>>> A \\ @V{\pi_2}VV @V{!_A}VV \\ X @>>{!_X}> * \end{CD}
The slice category {\bf{C}}/X is the category with objects being {\bf{C}}-arrows into X and arrows given by commuting triangles for those. As \pi_2:(A\times X)\to X and p are objects in {\bf{C}}/X, one such triangle is
\require{AMScd} \begin{CD} A\times X @>>> E \\ @V{\pi_2}VV @V{p}VV \\ X @= X \end{CD}
The point is that an arrow \theta:\pi_2\to p in {\bf{C}}/X exactly fulfills our condition by definition. A right adjoint \prod_{!_X} to the pullback functor !_X^* is defined as an isomorphism
{\bf{C}}/X[!_X{}^*!_A,p]\cong{\bf{C}}/*[!_A,\prod_{!_X}p]
I.e. this provides an isomorphism of the above triangle to
\require{AMScd} \begin{CD} A @>>> \prod_Xp \\ @V{!_A}VV @V{\prod_{!_X}p}VV \\ * @= * \end{CD}
The domain \prod_Xp\in{\bf{C}} is usually called the dependent product.
The case E=Y\times X and p=\pi_2 gives again \prod_X\pi_2=Y^X.
Reference
nLab: Dependent product
Wikipedia: Adjoint functors#Categorical logic (Here I made the left adjunction explicit in {\bf{Set}}.)