{-# OPTIONS --lossy-unification #-}
module Cubical.Categories.LocallySmall.Displayed.NaturalTransformation.IntoFiberCategory.Eq where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Function
open import Cubical.Foundations.HLevels
open import Cubical.Foundations.HLevels.More
open import Cubical.Foundations.Isomorphism hiding (isIso)
import Cubical.Data.Equality as Eq
open import Cubical.Data.Unit
open import Cubical.Data.Sigma
open import Cubical.Data.Sigma.More
open import Cubical.Reflection.RecordEquiv.More
import Cubical.Categories.Category as Small
import Cubical.Categories.Functor as SmallFunctor
import Cubical.Categories.Displayed.Functor as SmallFunctorᴰ
open import Cubical.Categories.LocallySmall.Category.Base
open import Cubical.Categories.LocallySmall.Category.Small
open import Cubical.Categories.LocallySmall.Instances.Unit
open import Cubical.Categories.LocallySmall.Instances.Functor.IntoFiberCategory
import Cubical.Categories.LocallySmall.Functor.Base as LocallySmallF
open import Cubical.Categories.LocallySmall.NaturalTransformation.IntoFiberCategory
open import Cubical.Categories.LocallySmall.Instances.Indiscrete
open import Cubical.Categories.LocallySmall.Variables
open import Cubical.Categories.LocallySmall.Displayed.Category.Base
open import Cubical.Categories.LocallySmall.Displayed.Category.Small
open import Cubical.Categories.LocallySmall.Displayed.Category.SmallDisplayedFibers
open import Cubical.Categories.LocallySmall.Displayed.Category.Notation
open import Cubical.Categories.LocallySmall.Displayed.Category.Properties
import Cubical.Categories.LocallySmall.Displayed.Functor.Base as LocallySmallFᴰ
import Cubical.Categories.LocallySmall.Displayed.Functor.Properties as LocallySmallFᴰ
open import Cubical.Categories.LocallySmall.Displayed.Constructions.Weaken
open import Cubical.Categories.LocallySmall.Displayed.Constructions.Reindex.Base
open import Cubical.Categories.LocallySmall.Displayed.Constructions.Reindex.Properties
open import Cubical.Categories.LocallySmall.Displayed.Constructions.BinProduct.Base
open import Cubical.Categories.LocallySmall.Displayed.NaturalTransformation.IntoFiberCategory.Base
open Category
open Categoryᴰ
open LocallySmallF.Functor
open LocallySmallFᴰ.Functorᴰ
open Liftω
open Σω
module FunctorEqᴰDefs
{C : SmallCategory ℓC ℓC'}
{ℓCᴰ ℓCᴰ'}
(Cᴰ : SmallCategoryᴰ C ℓCᴰ ℓCᴰ')
{D : Category Dob DHom-ℓ}
{Dobᴰ DHom-ℓᴰ}
(Dᴰ : GloballySmallCategoryᴰ D Dobᴰ DHom-ℓᴰ)
{Eob-ℓᴰ Eobᴰ EHom-ℓᴰ}
(Eᴰ : SmallFibersCategoryᴰ D Eob-ℓᴰ Eobᴰ EHom-ℓᴰ)
{Dᴰᴰ-ℓ Dobᴰᴰ DHom-ℓᴰᴰ}
(Dᴰᴰ : SmallFibersᴰCategoryᴰ Dᴰ Eᴰ Dᴰᴰ-ℓ Dobᴰᴰ DHom-ℓᴰᴰ)
where
private
module C = SmallCategory C
module Cᴰ = SmallCategoryᴰ Cᴰ
module D = CategoryNotation D
module Dᴰ = CategoryᴰNotation Dᴰ
module Eᴰ = CategoryᴰNotation Eᴰ
module Dᴰᴰ = SmallFibersᴰNotation Dᴰᴰ
open FunctorᴰDefs Cᴰ Dᴰ Eᴰ Dᴰᴰ
module _
(D-⋆ : ∀ {x} → D.id D.⋆ D.id Eq.≡ D.id {x = x})
(F-seq' : ∀ {d dᴰ} →
{x y z : Liftω (Eobᴰ d)} (f : Hom[ fibEq Eᴰ D-⋆ d , x ] y)
(g : Hom[ fibEq Eᴰ D-⋆ d , y ] z) →
(Categoryᴰ.∫C (Dᴰ ×ᴰ Eᴰ) ⋆
LocallySmallF.Functor.F-hom (fibᴰEqF D Dᴰ Eᴰ Dᴰᴰ d dᴰ D-⋆) f)
(LocallySmallF.Functor.F-hom (fibᴰEqF D Dᴰ Eᴰ Dᴰᴰ d dᴰ D-⋆) g)
Eq.≡
LocallySmallF.Functor.F-hom (fibᴰEqF D Dᴰ Eᴰ Dᴰᴰ d dᴰ D-⋆)
((fibEq Eᴰ D-⋆ d ⋆ f) g))
where
FunctorEqᴰ : {d : Dob} → (F : FunctorEq D-⋆ d) → (dᴰ : Dobᴰ d) → Typeω
FunctorEqᴰ {d} F dᴰ =
LocallySmallFᴰ.Functorᴰ F
Cᴰ.catᴰ
(fibᴰEq D Dᴰ Eᴰ Dᴰᴰ d dᴰ D-⋆ F-seq')
Functorᴰ→FunctorEqᴰ :
{d : Dob} → {F : Functor d} → {dᴰ : Dobᴰ d} →
Functorᴰ F dᴰ →
FunctorEqᴰ (Functor→FunctorEq D-⋆ d F) dᴰ
Functorᴰ→FunctorEqᴰ Fᴰ .F-obᴰ = F-obᴰ Fᴰ
Functorᴰ→FunctorEqᴰ Fᴰ .F-homᴰ = F-homᴰ Fᴰ
Functorᴰ→FunctorEqᴰ Fᴰ .F-idᴰ =
F-idᴰ Fᴰ
∙ ΣPathP (fib→fibEq Eᴰ D-⋆ _ .F-id ,
(Dᴰᴰ.rectify $ Dᴰᴰ.≡out $ sym $ Dᴰᴰ.reind-filler _ _))
Functorᴰ→FunctorEqᴰ Fᴰ .F-seqᴰ _ _ =
F-seqᴰ Fᴰ _ _
∙ ΣPathP (fib→fibEq Eᴰ D-⋆ _ .F-seq _ _ ,
(Dᴰᴰ.rectify $ Dᴰᴰ.≡out $
(sym $ Dᴰᴰ.reind-filler _ _)
∙ Dᴰᴰ.reindEq-pathFiller _ _))
FunctorEqᴰ→Functorᴰ :
{d : Dob} → {F : FunctorEq D-⋆ d} → {dᴰ : Dobᴰ d} →
FunctorEqᴰ F dᴰ →
Functorᴰ (FunctorEq→Functor D-⋆ d F) dᴰ
FunctorEqᴰ→Functorᴰ Fᴰ .F-obᴰ = F-obᴰ Fᴰ
FunctorEqᴰ→Functorᴰ Fᴰ .F-homᴰ = F-homᴰ Fᴰ
FunctorEqᴰ→Functorᴰ Fᴰ .F-idᴰ =
F-idᴰ Fᴰ
∙ ΣPathP (fibEq→fib Eᴰ D-⋆ _ .F-id ,
(Dᴰᴰ.rectify $ Dᴰᴰ.≡out $ Dᴰᴰ.reind-filler _ _))
FunctorEqᴰ→Functorᴰ Fᴰ .F-seqᴰ _ _ =
F-seqᴰ Fᴰ _ _
∙ ΣPathP (fibEq→fib Eᴰ D-⋆ _ .F-seq _ _ ,
(Dᴰᴰ.rectify $ Dᴰᴰ.≡out $
(sym $ Dᴰᴰ.reindEq-pathFiller _ _)
∙ Dᴰᴰ.reind-filler _ _))