module Cubical.Categories.LocallySmall.Displayed.Category.Notation where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Equiv.Dependent
open import Cubical.Foundations.Function
open import Cubical.Foundations.More
using (isSet→Square)
renaming (rectify to TypeRectify)
open import Cubical.Data.Sigma.More
open import Cubical.Categories.LocallySmall.Category.Base
open import Cubical.Categories.LocallySmall.Functor.Base
open import Cubical.Categories.LocallySmall.Displayed.Category.Base
open import Cubical.Categories.LocallySmall.Displayed.Category.Properties
open import Cubical.Categories.LocallySmall.Displayed.Instances.Reindex.Base
open import Cubical.Categories.LocallySmall.Displayed.Section.Base
open import Cubical.Categories.LocallySmall.Variables.Category
open Category
open Categoryᴰ
open Σω
module _ {C : Category Cob CHom-ℓ}(Cᴰ : Categoryᴰ C Cobᴰ CHom-ℓᴰ) where
private
module C = CategoryNotation C
module Cᴰ = Categoryᴰ Cᴰ
module CategoryᴰNotation where
open Categoryᴰ Cᴰ public
module ∫C = CategoryNotation Cᴰ.∫C
open Functor
Fst : Functor Cᴰ.∫C C
Fst .F-ob = λ z → z .fst
Fst .F-hom = λ z → z .fst
Fst .F-id = refl
Fst .F-seq = λ _ _ → refl
open Section
Snd : Section Fst Cᴰ
Snd .F-obᴰ = λ d → d .snd
Snd .F-homᴰ = λ f → f .snd
Snd .F-idᴰ = refl
Snd .F-seqᴰ = λ _ _ → refl
ISOCᴰ = ISOᴰ Cᴰ
module ISOCᴰ = Categoryᴰ ISOCᴰ
ISOCᴰ≡ :
∀ {x y : Cob}{f g : C.ISOC.Hom[ x , y ]}
{xᴰ yᴰ}{fᴰ : ISOCᴰ.Hom[ f ][ xᴰ , yᴰ ]}{gᴰ : ISOCᴰ.Hom[ g ][ xᴰ , yᴰ ]}
→ fᴰ .CatIsoᴰ.funᴰ Cᴰ.∫≡ gᴰ .CatIsoᴰ.funᴰ
→ fᴰ ISOCᴰ.∫≡ gᴰ
ISOCᴰ≡ = CatIsoᴰ≡ Cᴰ
invCatIsoᴰ : ∀ {x y xᴰ yᴰ}{f : C.ISOC.Hom[ x , y ]}
→ (fᴰ : CatIsoᴰ Cᴰ f xᴰ yᴰ)
→ CatIsoᴰ Cᴰ (C.invCatIso f) yᴰ xᴰ
invCatIsoᴰ fᴰ .CatIsoᴰ.funᴰ = fᴰ .CatIsoᴰ.invᴰ
invCatIsoᴰ fᴰ .CatIsoᴰ.invᴰ = fᴰ .CatIsoᴰ.funᴰ
invCatIsoᴰ fᴰ .CatIsoᴰ.secᴰ = fᴰ .CatIsoᴰ.retᴰ
invCatIsoᴰ fᴰ .CatIsoᴰ.retᴰ = fᴰ .CatIsoᴰ.secᴰ
CatIsoᴰ⋆ᴰ-Iso-over : ∀ {x y xᴰ yᴰ}{f : C.ISOC.Hom[ x , y ]}
→ CatIsoᴰ Cᴰ f xᴰ yᴰ
→ ∀ {z}{zᴰ : Cobᴰ z}
→ IsoOver (C.CatIso⋆-Iso f) Cᴰ.Hom[_][ yᴰ , zᴰ ] Cᴰ.Hom[_][ xᴰ , zᴰ ]
CatIsoᴰ⋆ᴰ-Iso-over fᴰ .IsoOver.fun g gᴰ = fᴰ .CatIsoᴰ.funᴰ Cᴰ.⋆ᴰ gᴰ
CatIsoᴰ⋆ᴰ-Iso-over fᴰ .IsoOver.inv g gᴰ = fᴰ .CatIsoᴰ.invᴰ Cᴰ.⋆ᴰ gᴰ
CatIsoᴰ⋆ᴰ-Iso-over fᴰ .IsoOver.rightInv g gᴰ = Cᴰ.rectify $ Cᴰ.≡out $
sym (Cᴰ.⋆Assoc _ _ _) ∙ Cᴰ.⟨ fᴰ .CatIsoᴰ.retᴰ ⟩⋆⟨⟩ ∙ Cᴰ.⋆IdL _
CatIsoᴰ⋆ᴰ-Iso-over fᴰ .IsoOver.leftInv g gᴰ = Cᴰ.rectify $ Cᴰ.≡out $
sym (Cᴰ.⋆Assoc _ _ _) ∙ Cᴰ.⟨ fᴰ .CatIsoᴰ.secᴰ ⟩⋆⟨⟩ ∙ Cᴰ.⋆IdL _
v[_] : (c : Cob) → Category (Cobᴰ c) (CHom-ℓᴰ c c)
v[_] = fib Cᴰ
module _ (C-⋆ : C.Id⋆Eq) where
vEq⟨_⟩[_] : (c : Cob) → Category (Cobᴰ c) (CHom-ℓᴰ c c)
vEq⟨_⟩[_] = fibEq Cᴰ C-⋆
module Cⱽ {c : Cob} = Category (v[ c ])
CatIsoⱽ→CatIsoFiber : ∀ {x}{xᴰ yᴰ : Cobᴰ x}
(fⱽ : CatIsoⱽ Cᴰ xᴰ yᴰ)
→ CatIso v[ x ] xᴰ yᴰ
CatIsoⱽ→CatIsoFiber fⱽ .CatIso.fun = fⱽ .CatIsoᴰ.funᴰ
CatIsoⱽ→CatIsoFiber fⱽ .CatIso.inv = fⱽ .CatIsoᴰ.invᴰ
CatIsoⱽ→CatIsoFiber fⱽ .CatIso.sec = Cᴰ.rectify $ Cᴰ.≡out $
sym (Cᴰ.reind-filler _ _)
∙ fⱽ .CatIsoᴰ.secᴰ
∙ Cᴰ.reind-filler _ _
CatIsoⱽ→CatIsoFiber fⱽ .CatIso.ret = Cᴰ.rectify $ Cᴰ.≡out $
sym (Cᴰ.reind-filler _ _)
∙ fⱽ .CatIsoᴰ.retᴰ
∙ Cᴰ.reind-filler _ _