{-# OPTIONS --lossy-unification #-}
module Cubical.Categories.Displayed.Presheaf.Uncurried.Eq.Conversion.BiCartesianClosedV where
open import Cubical.Foundations.Prelude
open import Cubical.Categories.Category.Base
open import Cubical.Categories.Limits.Cartesian.Base
open import Cubical.Categories.Limits.BinProduct.More
open import Cubical.Categories.Displayed.Base
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Eq.Base
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Eq.Conversion.CartesianV
open import Cubical.Categories.Displayed.Presheaf.Uncurried.Eq.Conversion.CartesianClosedV
import Cubical.Categories.Displayed.Limits.BiCartesianClosedV as Path
import Cubical.Categories.Displayed.Limits.CartesianClosedV as Path
import Cubical.Categories.Displayed.Limits.CartesianV' as Path
private
variable
ℓC ℓC' ℓCᴰ ℓCᴰ' : Level
module _ (CC : CartesianCategory ℓC ℓC') where
private
module CC = CartesianCategory CC
module _
(⋆AssocC : ReprEqAssoc CC.C)
(⋆IdLC : EqIdL CC.C)
(π₁NatEqC : Allπ₁NatEq CC.bp)
(×aF-seqC : All×aF-seq CC.bp)
(Cᴰ : Categoryᴰ CC.C ℓCᴰ ℓCᴰ')
(⋆AssocC^op : ReprEqAssoc (CC.C ^op))
where
EqBCCCⱽ→BCCCⱽ :
isCartesianClosedⱽ {C = CC.C} ⋆AssocC Cᴰ ⋆IdLC CC.bp π₁NatEqC ×aF-seqC
→ isCartesianⱽ {C = CC.C ^op} ⋆AssocC^op (Cᴰ ^opᴰ)
→ Path.BiCartesianClosedCategoryⱽ CC ℓCᴰ ℓCᴰ'
EqBCCCⱽ→BCCCⱽ isCCCⱽ isCartⱽ^op .Path.BiCartesianClosedCategoryⱽ.CCCⱽ =
EqCCCⱽ→CCCⱽ CC ⋆AssocC ⋆IdLC π₁NatEqC ×aF-seqC Cᴰ isCCCⱽ
EqBCCCⱽ→BCCCⱽ isCCCⱽ isCartⱽ^op .Path.BiCartesianClosedCategoryⱽ.initⱽ =
ccⱽ^op .Path.CartesianCategoryⱽ.termⱽ
where ccⱽ^op = EqCCⱽ→CCⱽ ⋆AssocC^op (Cᴰ ^opᴰ) isCartⱽ^op
EqBCCCⱽ→BCCCⱽ isCCCⱽ isCartⱽ^op .Path.BiCartesianClosedCategoryⱽ.bcpⱽ =
ccⱽ^op .Path.CartesianCategoryⱽ.bpⱽ
where ccⱽ^op = EqCCⱽ→CCⱽ ⋆AssocC^op (Cᴰ ^opᴰ) isCartⱽ^op
EqBCCCⱽ→BCCCⱽ isCCCⱽ isCartⱽ^op .Path.BiCartesianClosedCategoryⱽ.opcartesianLifts =
ccⱽ^op .Path.CartesianCategoryⱽ.cartesianLifts
where ccⱽ^op = EqCCⱽ→CCⱽ ⋆AssocC^op (Cᴰ ^opᴰ) isCartⱽ^op