Locally cartesian closed categories #
There are several equivalent definitions of locally cartesian closed categories. For instance the following two definitions are equivalent:
A locally cartesian closed category is a category
C
such that for every objectI
the slice categoryOver I
is cartesian closed.Equivalently, a locally cartesian closed category is a category with pullbacks where all morphisms
f
are exponentiable, that is the base change functorOver.pullback f
has a right adjoint for every morphismsf : I ⟶ J
. This latter condition is equivalent to exponentiability ofOver.mk f
inOver J
. The right adjoint ofOver.pullback f
is called the pushforward functor.
In this file we prove the equivalence of these definitions.
Implementation notes #
The type class LocallyCartesianClosed
extends HasPushforwards
with the extra data carrying the
witness of cartesian closedness of the slice categories. HasPushforwards.cartesianClosedOver
shows
that the cartesian closed structure of the slices follows from existence of pushforwards
along all morphisms. As such when instantiating a LocallyCartesianClosed
structure,
providing the the cartesian closed structure of the slices is not necessary and it will be filled
in automatically. See LocallyCartesianClosed.mkOfHasPushforwards
and
LocallyCartesianClosed.mkOfCartesianClosedOver
.
The advanatge we obtain from this implementation is that when using a
LocallyCartesianClosed
structure, both the pushforward functor and the cartesian closed structure
of slices are automatically available.
Main results #
exponentiableOverMk
shows that the exponentiable structure on a morphismf
makes the objectOver.mk f
in the appropriate slice category exponentiable.ofOverExponentiable
shows that an exponentiable object in a slice category gives rise to an exponentiable morphism.CartesianClosedOver.pushforward
constructs, in a category with cartesian closed slices, the pushforward functor along a morphismf : I ⟶ J
.CartesianClosedOver.pushforwardAdj
shows thatpushforward
is right adjoint to the pullback functor.- Conversely,
HasPushforwards.cartesianClosedOver
shows that, in a category with pushforwards along all morphisms, the slice categories are cartesian closed. LocallyCartesianClosed.cartesianClosed
proves that a locally cartesian closed category with a terminal object is cartesian closed.LocallyCartesianClosed.overLocallyCartesianClosed
shows that the slices of a locally cartesian closed category are locally cartesian closed.
A morphism f : I ⟶ J
is exponentiable if the pullback functor Over J ⥤ Over I
has a right adjoint.
Instances For
Equations
Instances For
Equations
Instances For
The dependent evaluation natural transformation as the counit of the adjunction.
Equations
Instances For
The dependent coevaluation natural transformation as the unit of the adjunction.
Equations
Instances For
The first triangle identity for the counit and unit of the adjunction.
The second triangle identity for the counit and unit of the adjunction.
The currying of (Over.pullback f).obj A ⟶ X
in Over I
to a morphism
A ⟶ (pushforward f).obj X
in Over J
.
Equations
Instances For
The uncurrying of A ⟶ (pushforward f).obj X
in Over J
to a morphism
(Over.pullback f).obj A ⟶ X
in Over I
.
Equations
Instances For
The identity morphisms 𝟙
are exponentiable.
The conjugate iso between the pushforward of the identity and the identity of the pushforward.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of exponentiable morphisms is exponentiable.
The conjugate isomorphism between pushforward of the composition and the composition of pushforward functors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A morphism with a pushforward is an exponentiable object in the slice category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An exponentibale object X
in the slice category Over I
gives rise to an exponentiable
morphism X.hom
.
Here the pushforward functor along a morphism f : I ⟶ J
is defined using the section functor
Over (Over.mk f) ⥤ Over J
.
Equations
- ⋯ = ⋯
Instances For
A category HasPushforwards
if every morphism is exponentiable.
A function assigning to every morphism
f : I ⟶ J
an exponentiable structure.
Instances
In a category where pushforwards exists along all morphisms, every slice category Over I
is
cartesian closed.
Equations
- CategoryTheory.HasPushforwards.cartesianClosedOver I = { closed := fun (X : CategoryTheory.Over I) => CategoryTheory.ExponentiableMorphism.exponentiableOverMk X.hom }
A category with cartesian closed slices has pushforwards along all morphisms.
A category with FiniteWidePullbacks
is locally cartesian closed if every morphism in it
is exponentiable and all the slices are cartesian closed.
- cartesianClosedOver (I : C) : CartesianClosed (Over I)
every slice category
Over I
is cartesian closed. This is filled in by default.
Instances
A category with pushforwards along all morphisms is locally cartesian closed.
Equations
- CategoryTheory.LocallyCartesianClosed.mkOfHasPushforwards = { toHasPushforwards := inst✝, cartesianClosedOver := CategoryTheory.HasPushforwards.cartesianClosedOver }
A category with cartesian closed slices is locally cartesian closed.
Equations
- CategoryTheory.LocallyCartesianClosed.mkOfCartesianClosedOver = { toHasPushforwards := ⋯, cartesianClosedOver := CategoryTheory.HasPushforwards.cartesianClosedOver }
Every morphism in a locally cartesian closed category is exponentiable.
Pi X Y
is the dependent product of Y
along X
. This is analogous to the dependent function
type Π x : X, Y x
in type theory. See Over.Sigma
and Over.Reindex
for related constructions.
Equations
Instances For
Pi'
is a variant of Pi
which takes as input morphisms and outputs morphisms.
Equations
Instances For
The dependent evaluation morphisms.
Equations
Instances For
A locally cartesian closed category with a terminal object is cartesian closed.
Equations
Instances For
The slices of a locally cartesian closed category are locally cartesian closed.
Equations
Instances For
The exponential X^^A
in the slice category Over I
is isomorphic to the pushforward of the
pullback of X
along A
.