module Cubical.Categories.LocallySmall.Displayed.Section.Bisection where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Function
open import Cubical.Data.Sigma
open import Cubical.Categories.LocallySmall.Category.Base
open import Cubical.Categories.LocallySmall.Variables
open import Cubical.Categories.LocallySmall.Functor.Base
open import Cubical.Categories.LocallySmall.Bifunctor.Base
open import Cubical.Categories.LocallySmall.Displayed.Category.Base
open import Cubical.Categories.LocallySmall.Displayed.Category.Properties
open import Cubical.Categories.LocallySmall.Displayed.Category.Notation
open import Cubical.Categories.LocallySmall.Displayed.Functor.Base
open import Cubical.Categories.LocallySmall.Displayed.Section.Base
open Category
open Categoryᴰ
open Functor
module _ (C : Category Cob CHom-ℓ)
(D : Category Dob DHom-ℓ)
{E : Category Eob EHom-ℓ}
(F : Bifunctor C D E)
(Eᴰ : Categoryᴰ E Eobᴰ EHom-ℓᴰ)
where
private
module C = CategoryNotation C
module D = CategoryNotation D
module E = CategoryNotation E
module Eᴰ = CategoryᴰNotation Eᴰ
module F = Bifunctor F
record Bisection : Typeω where
field
Bif-obᴰ : ∀ c d → Eobᴰ (F.Bif-ob c d)
Bif-hom×ᴰ : ∀ {c c' d d'}
(f : C.Hom[ c , c' ])(g : D.Hom[ d , d' ])
→ Eᴰ.Hom[ F.Bif-hom× f g ][ Bif-obᴰ c d , Bif-obᴰ c' d' ]
Bif-homLᴰ : ∀ {c c'} (f : C.Hom[ c , c' ]) d
→ Eᴰ.Hom[ F.Bif-homL f d ][ Bif-obᴰ c d , Bif-obᴰ c' d ]
Bif-homRᴰ : ∀ c {d d'} (g : D.Hom[ d , d' ])
→ Eᴰ.Hom[ F.Bif-homR c g ][ Bif-obᴰ c d , Bif-obᴰ c d' ]
Bif-×-idᴰ : ∀ {c d}
→ Bif-hom×ᴰ (C.id {x = c}) (D.id {x = d}) Eᴰ.∫≡ Eᴰ.idᴰ
Bif-×-seqᴰ : ∀ {c c' c'' d d' d''}
{f : C.Hom[ c , c' ]}{f' : C.Hom[ c' , c'' ]}
{g : D.Hom[ d , d' ]}{g' : D.Hom[ d' , d'' ]}
→ Bif-hom×ᴰ (f C.⋆ f') (g D.⋆ g')
Eᴰ.∫≡ (Bif-hom×ᴰ f g Eᴰ.⋆ᴰ Bif-hom×ᴰ f' g')
Bif-L×-agreeᴰ : ∀ {c c' d} {f : C.Hom[ c , c' ]}
→ Bif-homLᴰ f d Eᴰ.∫≡ Bif-hom×ᴰ f D.id
Bif-R×-agreeᴰ : ∀ {c d d'} {g : D.Hom[ d , d' ]}
→ Bif-homRᴰ c g Eᴰ.∫≡ Bif-hom×ᴰ C.id g
Bif-hom×ᴰ⟨_⟩⟨_⟩ : ∀ {c c' d d'}
{f f' : C.Hom[ c , c' ]}
{g g' : D.Hom[ d , d' ]}
(f≡f' : f ≡ f') (g≡g' : g ≡ g')
→ (Bif-hom×ᴰ f g) Eᴰ.∫≡ (Bif-hom×ᴰ f' g')
Bif-hom×ᴰ⟨ f≡f' ⟩⟨ g≡g' ⟩ i =
(F.Bif-hom× (f≡f' i) (g≡g' i))
, (Bif-hom×ᴰ (f≡f' i) (g≡g' i))