module Cat.Displayed.Instances.Slice.Comprehension
{o ℓ} (B : Precategory o ℓ)
whereThe canonical comprehension category🔗
The identity fibred functor of the canonical self-indexing of any category is the prototypical example of a comprehension category.
Slices-comprehension : Comprehension-structure (Slices B)
Slices-comprehension .Comprehend = Id'
Slices-comprehension .Comprehend-is-fibred = Id'-fibredAssuming that has pullbacks (so that we can talk about its codomain fibration), the canonical comprehension category has comprehension coproducts given by its cocartesian lifts, which are in turn given by composition.
module _ (pullbacks : has-pullbacks B) where
private
fib = Codomain-fibration B pullbacks
opfib = Codomain-opfibration B
open CR B
open Displayed (Slices B)
open Cocartesian-fibration (Slices B) opfib
open Comprehension (Slices B) fib Slices-comprehension
opaque
unfolding _⨾_ Slices-comprehension-coproducts
: has-comprehension-coproducts fib fib Slices-comprehension
Slices-comprehension-coproducts = record where
∐ x y = x .map ^! y
⟨_,_⟩ x y = ι! _ y
⟨⟩-cocartesian x y = ι!.cocartesian
∐-beck-chevalley cart = Slices-beck-chevalley B
(rotate-pullback (cartesian→pullback B cart))These comprehension coproducts are very strong by construction: they model This is one of those proofs whose name is longer than its definition, since and are both interpreted as the domain of the same map, and the canonical substitution between them is just the identity.
Slices-very-strong-comprehension-coproducts
: very-strong-comprehension-coproducts
Slices-comprehension Slices-comprehension-coproducts
Slices-very-strong-comprehension-coproducts x y = id-invertible