module Cat.Displayed.Instances.Slice.Comprehension {o ℓ} (B : Precategory o ℓ) where
The 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'-fibred
Assuming 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