module Cat.Displayed.Instances.Identity {o ℓ} (B : Precategory o ℓ) where
open Trivially-graded
open Precategory B
open Functor
open ∫Hom
The identity bifibration🔗
Let be a precategory. We can define a displayed category over whose total category is isomorphic to called the identity bifibration.
: Displayed B lzero lzero
IdD = with-thin-display record where
IdD _] X = ⊤
Ob[_] f X Y = ⊤
Hom[= _
id' _∘'_ = _
This fibration is obviously a discrete fibration; in fact, it’s about as discrete as you can get!
: is-discrete-cartesian-fibration IdD
IdD-discrete-fibration .is-discrete-cartesian-fibration.fibre-set _ = hlevel 2
IdD-discrete-fibration .is-discrete-cartesian-fibration.cart-lift _ _ = hlevel 0 IdD-discrete-fibration
Every morphism in the identity fibration is trivially cartesian and cocartesian.
idd-is-cartesian: ∀ {x y} {f : Hom x y}
→ is-cartesian IdD f tt
.is-cartesian.universal _ _ = tt
idd-is-cartesian .is-cartesian.commutes _ _ = refl
idd-is-cartesian .is-cartesian.unique _ _ = refl
idd-is-cartesian
idd-is-cocartesian: ∀ {x y} {f : Hom x y}
→ is-cocartesian IdD f (tt)
.is-cocartesian.universal _ _ = tt
idd-is-cocartesian .is-cocartesian.commutes _ _ = refl
idd-is-cocartesian .is-cocartesian.unique _ _ = refl idd-is-cocartesian
This implies that it’s trivially a bifibration. We omit the proofs, because they are totally uninteresting.
: Cartesian-fibration IdD
IdD-fibration : Cocartesian-fibration IdD
IdD-opfibration : is-bifibration IdD IdD-bifibration
.Cartesian-lift.x' = tt
IdD-fibration f y' .Cartesian-lift.lifting = tt
IdD-fibration f y' .Cartesian-lift.cartesian =
IdD-fibration f y'
idd-is-cartesian
.Cocartesian-lift.y' = tt
IdD-opfibration f x' .Cocartesian-lift.lifting = tt
IdD-opfibration f x' .Cocartesian-lift.cocartesian =
IdD-opfibration f x'
idd-is-cocartesian
.is-bifibration.fibration = IdD-fibration
IdD-bifibration .is-bifibration.opfibration = IdD-opfibration IdD-bifibration
Fibre categories🔗
The fibre categories of the identity bifibration are isomorphic to the terminal category.
: ∀ x → Functor ⊤Cat (Fibre IdD x)
IdDFib .F₀ _ = tt
IdDFib x .F₁ _ = tt
IdDFib x .F-id = refl
IdDFib x .F-∘ _ _ = refl
IdDFib x
: ∀ x → is-precat-iso (IdDFib x)
IdD-is-iso .is-precat-iso.has-is-ff = id-equiv
IdD-is-iso x .is-precat-iso.has-is-iso = id-equiv IdD-is-iso x
Total category🔗
The total category of the identity bifibration is isomorphic to itself.
: Functor B (∫ IdD)
IdDTotal .F₀ x = x , tt
IdDTotal .F₁ f = ∫hom f (tt)
IdDTotal .F-id = ∫Hom-path _ refl refl
IdDTotal .F-∘ _ _ = ∫Hom-path _ refl refl
IdDTotal
: is-precat-iso IdDTotal
IdDTotal-is-iso .is-precat-iso.has-is-ff =
IdDTotal-is-iso (iso fst (λ _ → ∫Hom-path _ refl refl) (λ _ → refl))
is-iso→is-equiv .is-precat-iso.has-is-iso =
IdDTotal-is-iso (iso fst (λ _ → refl) (λ _ → refl)) is-iso→is-equiv