module Chapter8.Container.Morphism.Cartesian
{I J K L : Set}
where
open import Function
open import Relation.Binary.PropositionalEquality
open import Data.Product
open import Chapter5.Container
open import Chapter5.Container.Morphism
record _⇒c[_∣_]_ (φ' : I ▸ J)
(u : I → K)(v : J → L)
(φ : K ▸ L) : Set₁ where
field
σ : ∀{j} → S φ' j → S φ (v j)
ρ : ∀{j : J}{sh' : S φ' j} → P φ (σ sh') ≡ P φ' sh'
q : ∀{j : J}{sh' : S φ' j} →
(p : P φ (σ sh')) → u (n φ' (subst id ρ p)) ≡ n φ p
to⇒ : {φ' : I ▸ J}{φ : K ▸ L}{u : I → K}{v : J → L} →
φ' ⇒c[ u ∣ v ] φ → φ' ⇒[ u ∣ v ] φ
to⇒ τ = record { σ = σ τ
; ρ = subst id (ρ τ)
; q = q τ }
where open _⇒c[_∣_]_ public