module Cat.Displayed.Instances.Chaotic
{o ℓ o' ℓ'} (B : Precategory o ℓ) (J : Precategory o' ℓ')
where
private
module B = Cat.Reasoning B
module J = Cat.Reasoning J
open Functor
open Displayed
open ∫Hom
The chaotic bifibration🔗
Let and be precategories. We define the chaotic bifibration of over to be the displayed category where we trivially fibre over disregarding the structure of entirely.
: Displayed B o' ℓ'
Chaotic .Ob[_] _ = J.Ob
Chaotic .Hom[_] _ = J.Hom
Chaotic .Hom[_]-set _ = J.Hom-set
Chaotic .id' = J.id
Chaotic ._∘'_ = J._∘_
Chaotic .idr' = J.idr
Chaotic .idl' = J.idl
Chaotic .assoc' = J.assoc
Chaotic .hom[_] p f = f
Chaotic .coh[_] p f = refl Chaotic
Note that the only cartesian morphisms in the chaotic bifibration are the isomorphisms in
chaotic-cartesian→is-iso: ∀ {x y x' y'} {f : B.Hom x y} {g : J.Hom x' y'}
→ is-cartesian Chaotic f g → J.is-invertible g
=
chaotic-cartesian→is-iso cart .make-invertible
J(universal B.id J.id)
(commutes B.id J.id)
(unique _ (J.cancell (commutes B.id J.id))
(unique {m = B.id} J.id (J.idr _)))
∙ sym where open is-cartesian cart
is-iso→chaotic-cartesian: ∀ {x y x' y'} {f : B.Hom x y} {g : J.Hom x' y'}
→ J.is-invertible g → is-cartesian Chaotic f g
{f = f} {g = g} is-inv = cart
is-iso→chaotic-cartesian where
open J.is-invertible is-inv
open is-cartesian
: is-cartesian Chaotic f g
cart .universal _ h = inv J.∘ h
cart .commutes _ h = J.cancell invl
cart .unique {h' = h} m p =
cart .introl invr ⟩
m ≡⟨ J(inv J.∘ g) J.∘ m ≡⟨ J.pullr p ⟩
.∘ h ∎ inv J
This implies that the chaotic fibration is a fibration, as
is invertible, and also lies above every morphism in
We could use our lemmas from before to show this, but doing it by hand
lets us avoid an extra id
composite when constructing the
universal map.
: Cartesian-fibration Chaotic
Chaotic-fibration = cart-lift where
Chaotic-fibration f y open Cartesian-lift
open is-cartesian
: Cartesian-lift Chaotic f y
cart-lift .x' = y
cart-lift .lifting = J.id
cart-lift .cartesian .universal _ g = g
cart-lift .cartesian .commutes _ g = J.idl g
cart-lift .cartesian .unique m p = sym (J.idl m) ∙ p cart-lift
We observe a similar situation for cocartesian morphisms.
chaotic-cocartesian→is-iso: ∀ {x y x' y'} {f : B.Hom x y} {g : J.Hom x' y'}
→ is-cocartesian Chaotic f g → J.is-invertible g
=
chaotic-cocartesian→is-iso cocart .make-invertible
J(universal B.id J.id)
(unique _ (J.cancelr (commutes B.id J.id))
(unique {m = B.id} J.id (J.idl _)))
∙ sym (commutes B.id J.id)
where open is-cocartesian cocart
is-iso→chaotic-cocartesian: ∀ {x y x' y'} {f : B.Hom x y} {g : J.Hom x' y'}
→ J.is-invertible g → is-cocartesian Chaotic f g
{f = f} {g = g} is-inv = cocart
is-iso→chaotic-cocartesian where
open J.is-invertible is-inv
open is-cocartesian
: is-cocartesian Chaotic f g
cocart .universal _ h = h J.∘ inv
cocart .commutes _ h = J.cancelr invr
cocart .unique {h' = h} m p =
cocart .intror invl ⟩
m ≡⟨ J.∘ g J.∘ inv ≡⟨ J.pulll p ⟩
m J.∘ inv ∎
h J
: Cocartesian-fibration Chaotic
Chaotic-opfibration = cocart-lift where
Chaotic-opfibration f x' open Cocartesian-lift
open is-cocartesian
: Cocartesian-lift Chaotic f x'
cocart-lift .y' = x'
cocart-lift .lifting = J.id
cocart-lift .cocartesian .universal _ g = g
cocart-lift .cocartesian .commutes _ g = J.idr g
cocart-lift .cocartesian .unique m p = sym (J.idr m) ∙ p cocart-lift
This implies that the chaotic bifibration actually lives up to its name.
: is-bifibration Chaotic
Chaotic-bifibration .is-bifibration.fibration = Chaotic-fibration
Chaotic-bifibration .is-bifibration.opfibration = Chaotic-opfibration Chaotic-bifibration
Fibre categories🔗
Unsurprisingly, the fibre categories of the chaotic bifibration are isomorphic to
: ∀ x → Functor J (Fibre Chaotic x)
ChaoticFib .F₀ j = j
ChaoticFib x .F₁ f = f
ChaoticFib x .F-id = refl
ChaoticFib x .F-∘ _ _ = refl
ChaoticFib x
: ∀ x → is-precat-iso (ChaoticFib x)
ChaoticFib-is-iso .is-precat-iso.has-is-ff = id-equiv
ChaoticFib-is-iso x .is-precat-iso.has-is-iso = id-equiv ChaoticFib-is-iso x
Total category🔗
The total category of the chaotic bifibration is isomorphic to the product of and
: Functor (B ×ᶜ J) (∫ Chaotic)
Chaotic-total .F₀ bj = bj
Chaotic-total .F₁ (f , g) = ∫hom f g
Chaotic-total .F-id = ∫Hom-path Chaotic refl refl
Chaotic-total .F-∘ f g = ∫Hom-path Chaotic refl refl
Chaotic-total
: is-precat-iso Chaotic-total
Chaotic-total-is-iso .is-precat-iso.has-is-ff =
Chaotic-total-is-iso
is-iso→is-equiv(iso (λ f → f .fst , f .snd)
(λ _ → ∫Hom-path Chaotic refl refl)
(λ _ → refl))
.is-precat-iso.has-is-iso = id-equiv Chaotic-total-is-iso