{-# OPTIONS --without-K --rewriting #-}
open import lib.Basics
open import lib.types.Pointed
module lib.types.PtdMap-conv where
module _ {i j} {X : Ptd i} {Y : Ptd j} where
abstract
!⊙-conv : {f₁ f₂ : X ⊙→ Y} (h : f₁ ⊙-crd∼ f₂) →
⊙-crd∼-to-== (!-⊙∼ h) == ! (⊙-crd∼-to-== h)
!⊙-conv {f₁} =
⊙hom-ind f₁
(λ f₂ h → ⊙-crd∼-to-== (!-⊙∼ h) == ! (⊙-crd∼-to-== h))
(ap ⊙-crd∼-to-== (∙⊙∼-! f₁) ∙
⊙-crd∼-to-==-β f₁ ∙
ap ! (! (⊙-crd∼-to-==-β f₁)))
⊙∘-conv : {f₁ f₃ f₂ : X ⊙→ Y} (h₁ : f₁ ⊙-crd∼ f₂) (h₂ : f₂ ⊙-crd∼ f₃) →
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂) ◃∎ =ₛ ⊙-crd∼-to-== h₁ ◃∙ ⊙-crd∼-to-== h₂ ◃∎
⊙∘-conv {f₁} {f₃} =
⊙hom-ind f₁
(λ f₂ h₁ →
((h₂ : f₂ ⊙-crd∼ f₃) →
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂) ◃∎ =ₛ ⊙-crd∼-to-== h₁ ◃∙ ⊙-crd∼-to-== h₂ ◃∎))
λ h₂ →
⊙-crd∼-to-== (⊙∼-id f₁ ∙⊙∼ h₂) ◃∎
=ₛ₁⟨ ap ⊙-crd∼-to-== (∙⊙∼-unit-l h₂) ⟩
⊙-crd∼-to-== h₂ ◃∎
=ₛ⟨ =ₛ-in (idp {a = ⊙-crd∼-to-== h₂}) ⟩
idp {a = f₁} ◃∙ ⊙-crd∼-to-== h₂ ◃∎
=ₛ₁⟨ 0 & 1 & ! (⊙-crd∼-to-==-β f₁) ⟩
⊙-crd∼-to-== (⊙∼-id f₁) ◃∙ ⊙-crd∼-to-== h₂ ◃∎ ∎ₛ
⊙∘-conv-tri : {f₁ f₂ f₃ f₄ : X ⊙→ Y}
(h₁ : f₁ ⊙-crd∼ f₂) (h₂ : f₂ ⊙-crd∼ f₃) (h₃ : f₃ ⊙-crd∼ f₄) →
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃) ◃∎
=ₛ
⊙-crd∼-to-== h₁ ◃∙ ⊙-crd∼-to-== h₂ ◃∙ ⊙-crd∼-to-== h₃ ◃∎
⊙∘-conv-tri h₁ h₂ h₃ =
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃) ◃∎
=ₛ⟨ ⊙∘-conv h₁ (h₂ ∙⊙∼ h₃) ⟩
⊙-crd∼-to-== h₁ ◃∙ ⊙-crd∼-to-== (h₂ ∙⊙∼ h₃) ◃∎
=ₛ⟨ 1 & 1 & ⊙∘-conv h₂ h₃ ⟩
⊙-crd∼-to-== h₁ ◃∙ ⊙-crd∼-to-== h₂ ◃∙ ⊙-crd∼-to-== h₃ ◃∎ ∎ₛ
⊙∘-conv-quint : {f₁ f₂ f₃ f₄ f₅ f₆ : X ⊙→ Y}
(h₁ : _⊙-crd∼_ f₁ f₂) (h₂ : _⊙-crd∼_ f₂ f₃)
(h₃ : _⊙-crd∼_ f₃ f₄) (h₄ : _⊙-crd∼_ f₄ f₅)
(h₅ : _⊙-crd∼_ f₅ f₆) →
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== h₃ ◃∙
⊙-crd∼-to-== h₄ ◃∙
⊙-crd∼-to-== h₅ ◃∎
=ₛ
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃ ∙⊙∼ h₄ ∙⊙∼ h₅) ◃∎
⊙∘-conv-quint h₁ h₂ h₃ h₄ h₅ =
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== h₃ ◃∙
⊙-crd∼-to-== h₄ ◃∙
⊙-crd∼-to-== h₅ ◃∎
=ₛ⟨ 2 & 3 & !ₛ (⊙∘-conv-tri h₃ h₄ h₅) ⟩
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== (h₃ ∙⊙∼ h₄ ∙⊙∼ h₅) ◃∎
=ₛ⟨ !ₛ (⊙∘-conv-tri h₁ h₂ (h₃ ∙⊙∼ h₄ ∙⊙∼ h₅)) ⟩
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃ ∙⊙∼ h₄ ∙⊙∼ h₅) ◃∎ ∎ₛ
⊙∘-conv-sept : {f₁ f₂ f₃ f₄ f₅ f₆ f₇ f₈ : X ⊙→ Y}
(h₁ : _⊙-crd∼_ f₁ f₂) (h₂ : _⊙-crd∼_ f₂ f₃)
(h₃ : _⊙-crd∼_ f₃ f₄) (h₄ : _⊙-crd∼_ f₄ f₅)
(h₅ : _⊙-crd∼_ f₅ f₆) (h₆ : _⊙-crd∼_ f₆ f₇)
(h₇ : _⊙-crd∼_ f₇ f₈) →
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== h₃ ◃∙
⊙-crd∼-to-== h₄ ◃∙
⊙-crd∼-to-== h₅ ◃∙
⊙-crd∼-to-== h₆ ◃∙
⊙-crd∼-to-== h₇ ◃∎
=ₛ
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃ ∙⊙∼ h₄ ∙⊙∼ h₅ ∙⊙∼ h₆ ∙⊙∼ h₇) ◃∎
⊙∘-conv-sept h₁ h₂ h₃ h₄ h₅ h₆ h₇ =
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== h₃ ◃∙
⊙-crd∼-to-== h₄ ◃∙
⊙-crd∼-to-== h₅ ◃∙
⊙-crd∼-to-== h₆ ◃∙
⊙-crd∼-to-== h₇ ◃∎
=ₛ⟨ 2 & 5 & ⊙∘-conv-quint h₃ h₄ h₅ h₆ h₇ ⟩
⊙-crd∼-to-== h₁ ◃∙
⊙-crd∼-to-== h₂ ◃∙
⊙-crd∼-to-== (h₃ ∙⊙∼ h₄ ∙⊙∼ h₅ ∙⊙∼ h₆ ∙⊙∼ h₇) ◃∎
=ₛ⟨ !ₛ (⊙∘-conv-tri h₁ h₂ (h₃ ∙⊙∼ h₄ ∙⊙∼ h₅ ∙⊙∼ h₆ ∙⊙∼ h₇)) ⟩
⊙-crd∼-to-== (h₁ ∙⊙∼ h₂ ∙⊙∼ h₃ ∙⊙∼ h₄ ∙⊙∼ h₅ ∙⊙∼ h₆ ∙⊙∼ h₇) ◃∎ ∎ₛ
module _ {i j k} {X : Ptd i} {Y : Ptd j} {Z : Ptd k} where
abstract
whisk⊙-conv-r : {f₁ : X ⊙→ Y} {f₂ f₂' : Y ⊙→ Z} (h : f₂ ⊙-crd∼ f₂') →
⊙-crd∼-to-== (⊙∘-pre f₁ h) == ap (λ m → m ⊙∘ f₁) (⊙-crd∼-to-== h)
whisk⊙-conv-r {f₁} {f₂} =
⊙hom-ind f₂
(λ f₂' h → ⊙-crd∼-to-== (⊙∘-pre f₁ h) == ap (λ m → m ⊙∘ f₁) (⊙-crd∼-to-== h))
(ap ⊙-crd∼-to-== (∙⊙-pre {f = f₂}) ∙
⊙-crd∼-to-==-β (f₂ ⊙∘ f₁) ∙
! (ap (ap (λ m → m ⊙∘ f₁)) (⊙-crd∼-to-==-β f₂)))
whisk⊙-conv-l : {f₁ : Y ⊙→ Z} {f₂ f₂' : X ⊙→ Y} (h : f₂ ⊙-crd∼ f₂') →
⊙-crd∼-to-== (⊙∘-post f₁ h) == ap (λ m → f₁ ⊙∘ m) (⊙-crd∼-to-== h)
whisk⊙-conv-l {f₁} {f₂} =
⊙hom-ind f₂
(λ f₂' h → ⊙-crd∼-to-== (⊙∘-post f₁ h) == ap (λ m → f₁ ⊙∘ m) (⊙-crd∼-to-== h))
(ap ⊙-crd∼-to-== (∙⊙-post {f = f₂}) ∙
⊙-crd∼-to-==-β (f₁ ⊙∘ f₂) ∙
! (ap (ap (λ m → f₁ ⊙∘ m)) (⊙-crd∼-to-==-β f₂)))
⊙-whisk⊙-conv-l-∙-aux : {f₁ : Y ⊙→ Z} {f₂ f₂' : X ⊙→ Y} (h : f₂ ⊙-crd∼ f₂') →
ap (_⊙∘_ f₁) (⊙-crd∼-to-== (⊙∼-id f₂) ∙ ⊙-crd∼-to-== h)
==
⊙-crd∼-to-== (⊙∘-post f₁ (⊙∼-id f₂ ∙⊙∼ h))
⊙-whisk⊙-conv-l-∙-aux {f₁@(_ , idp)} {f₂@(_ , idp)} =
⊙hom-ind f₂
(λ f₂' h →
ap (_⊙∘_ f₁) (⊙-crd∼-to-== (⊙∼-id f₂) ∙ ⊙-crd∼-to-== h)
==
⊙-crd∼-to-== (⊙∘-post f₁ (⊙∼-id f₂ ∙⊙∼ h)))
(ap (λ p → ap (_⊙∘_ f₁) (p ∙ p)) (⊙-crd∼-to-==-β f₂) ∙
! (ap ⊙-crd∼-to-== (⊙→∼-to-== ((λ _ → idp) , idp )) ∙ ⊙-crd∼-to-==-β _))
⊙-whisk⊙-conv-l-∙ : {f₁ : Y ⊙→ Z} {f₂ f₂'' f₂' : X ⊙→ Y} (h₁ : f₂ ⊙-crd∼ f₂') (h₂ : f₂' ⊙-crd∼ f₂'') →
ap (λ m → f₁ ⊙∘ m) (⊙-crd∼-to-== h₁ ∙ ⊙-crd∼-to-== h₂)
==
⊙-crd∼-to-== (⊙∘-post f₁ (h₁ ∙⊙∼ h₂))
⊙-whisk⊙-conv-l-∙ {f₁} {f₂} {f₂''} =
⊙hom-ind f₂
(λ f₂' h₁ → (h₂ : f₂' ⊙-crd∼ f₂'') →
ap (λ m → f₁ ⊙∘ m) (⊙-crd∼-to-== h₁ ∙ ⊙-crd∼-to-== h₂)
==
⊙-crd∼-to-== (⊙∘-post f₁ (h₁ ∙⊙∼ h₂)))
⊙-whisk⊙-conv-l-∙-aux
!⊙-whisk⊙-conv-l-∙ : {f₁ : Y ⊙→ Z} {f₂ f₂'' f₂' : X ⊙→ Y} (h₁ : f₂ ⊙-crd∼ f₂') (h₂ : f₂' ⊙-crd∼ f₂'') →
! (ap (λ m → f₁ ⊙∘ m) (⊙-crd∼-to-== h₁ ∙ ⊙-crd∼-to-== h₂))
==
⊙-crd∼-to-== (!-⊙∼ (⊙∘-post f₁ (h₁ ∙⊙∼ h₂)))
!⊙-whisk⊙-conv-l-∙ {f₁} h₁ h₂ = ap ! (⊙-whisk⊙-conv-l-∙ h₁ h₂) ∙ ! (!⊙-conv (⊙∘-post f₁ (h₁ ∙⊙∼ h₂)))