module Cat.Displayed.Instances.Identity {o β} (B : Precategory o β) where open Precategory B open Displayed open Functor open Total-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.
IdD : Displayed B lzero lzero IdD .Ob[_] _ = β€ IdD .Hom[_] _ _ _ = β€ IdD .Hom[_]-set _ _ _ = hlevel 2 IdD .id' = tt IdD ._β'_ _ _ = tt IdD .idr' _ = refl IdD .idl' _ = refl IdD .assoc' _ _ _ = refl
This fibration is obviously a discrete fibration; in fact, itβs about as discrete as you can get!
IdD-discrete-fibration : Discrete-fibration IdD IdD-discrete-fibration .Discrete-fibration.fibre-set _ = hlevel 2 IdD-discrete-fibration .Discrete-fibration.lifts _ _ = hlevel 0
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 idd-is-cartesian .is-cartesian.universal _ _ = tt idd-is-cartesian .is-cartesian.commutes _ _ = refl idd-is-cartesian .is-cartesian.unique _ _ = refl idd-is-cocartesian : β {x y} {f : Hom x y} β is-cocartesian IdD f (tt) idd-is-cocartesian .is-cocartesian.universal _ _ = tt idd-is-cocartesian .is-cocartesian.commutes _ _ = refl idd-is-cocartesian .is-cocartesian.unique _ _ = refl
This implies that itβs trivially a bifibration. We omit the proofs, because they are totally uninteresting.
IdD-fibration : Cartesian-fibration IdD IdD-opfibration : Cocartesian-fibration IdD IdD-bifibration : is-bifibration IdD
IdD-fibration .Cartesian-fibration.has-lift f y' .Cartesian-lift.x' = tt IdD-fibration .Cartesian-fibration.has-lift f y' .Cartesian-lift.lifting = tt IdD-fibration .Cartesian-fibration.has-lift f y' .Cartesian-lift.cartesian = idd-is-cartesian IdD-opfibration .Cocartesian-fibration.has-lift f x' .Cocartesian-lift.y' = tt IdD-opfibration .Cocartesian-fibration.has-lift f x' .Cocartesian-lift.lifting = tt IdD-opfibration .Cocartesian-fibration.has-lift f x' .Cocartesian-lift.cocartesian = idd-is-cocartesian IdD-bifibration .is-bifibration.fibration = IdD-fibration IdD-bifibration .is-bifibration.opfibration = IdD-opfibration
Fibre categoriesπ
The fibre categories of the identity bifibration are isomorphic to the terminal category.
IdDFib : β x β Functor β€Cat (Fibre IdD x) IdDFib x .Fβ _ = tt IdDFib x .Fβ _ = tt IdDFib x .F-id = refl IdDFib x .F-β _ _ = refl IdD-is-iso : β x β is-precat-iso (IdDFib x) IdD-is-iso x .is-precat-iso.has-is-ff = id-equiv IdD-is-iso x .is-precat-iso.has-is-iso = id-equiv
Total categoryπ
The total category of the identity bifibration is isomorphic to itself.
IdDTotal : Functor B (β« IdD) IdDTotal .Fβ x = x , tt IdDTotal .Fβ f = total-hom f (tt) IdDTotal .F-id = total-hom-path _ refl refl IdDTotal .F-β _ _ = total-hom-path _ refl refl IdDTotal-is-iso : is-precat-iso IdDTotal IdDTotal-is-iso .is-precat-iso.has-is-ff = is-isoβis-equiv (iso hom (Ξ» _ β total-hom-path _ refl refl) (Ξ» _ β refl)) IdDTotal-is-iso .is-precat-iso.has-is-iso = is-isoβis-equiv (iso fst (Ξ» _ β refl) (Ξ» _ β refl))