{-# OPTIONS --without-K --rewriting #-}
open import lib.Basics
open import Bicategory
open import AdjEqv
open import Bicat-coher
open import Pstransf
open import Univ-bc
module Pstransf-id where
open BicatStr {{...}}
open Psfunctor-nc
open PsfunctorNcStr
open Pstrans
module _ {i₁ i₂ j₁ j₂} {B₀ : Type i₁} {C₀ : Type i₂}
{{ξB : BicatStr j₁ B₀}} {{ξC : BicatStr j₂ C₀}} where
Pstrans-id : {R : Psfunctor-nc {{ξB}} {{ξC}}} → Pstrans R R
η₀ (Pstrans-id {R}) x = id₁ (map-pf R x)
η₁ (Pstrans-id {R}) f = ! (ρ (F₁ (str-pf R) f)) ∙ lamb (F₁ (str-pf R) f)
coher-unit (Pstrans-id {R}) {x} = =ₛ-out $
lamb (id₁ (map-pf R x)) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (! (F-id₁ (str-pf R) x)) ◃∙
(! (ρ (F₁ (str-pf R) (id₁ x))) ∙ lamb (F₁ (str-pf R) (id₁ x))) ◃∙
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R x) ◻ m) (F-id₁ (str-pf R) x) ◃∎
=ₑ⟨ 2 & 1 & (! (ρ (F₁ (str-pf R) (id₁ x))) ◃∙ lamb (F₁ (str-pf R) (id₁ x)) ◃∎) % =ₛ-in idp ⟩
lamb (id₁ (map-pf R x)) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (! (F-id₁ (str-pf R) x)) ◃∙
! (ρ (F₁ (str-pf R) (id₁ x))) ◃∙
lamb (F₁ (str-pf R) (id₁ x)) ◃∙
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R x) ◻ m) (F-id₁ (str-pf R) x) ◃∎
=ₛ⟨ 3 & 2 & !ₛ (homotopy-naturality _ _ lamb (F-id₁ (str-pf R) x)) ⟩
lamb (id₁ (map-pf R x)) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (! (F-id₁ (str-pf R) x)) ◃∙
! (ρ (F₁ (str-pf R) (id₁ x))) ◃∙
ap (λ m → m) (F-id₁ (str-pf R) x) ◃∙
lamb (id₁ (map-pf R x)) ◃∎
=ₛ₁⟨ 1 & 1 & ap-! (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-id₁ (str-pf R) x) ⟩
lamb (id₁ (map-pf R x)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-id₁ (str-pf R) x)) ◃∙
! (ρ (F₁ (str-pf R) (id₁ x))) ◃∙
ap (λ m → m) (F-id₁ (str-pf R) x) ◃∙
lamb (id₁ (map-pf R x)) ◃∎
=ₛ⟨ 1 & 3 & !ₛ (apCommSq2◃! ρ (F-id₁ (str-pf R) x)) ⟩
lamb (id₁ (map-pf R x)) ◃∙
! (ρ (id₁ (map-pf R x))) ◃∙
lamb (id₁ (map-pf R x)) ◃∎
=ₛ₁⟨ 0 & 1 & lamb-ρ-id₁-bc ⟩
ρ (id₁ (map-pf R x)) ◃∙
! (ρ (id₁ (map-pf R x))) ◃∙
lamb (id₁ (map-pf R x)) ◃∎
=ₛ₁⟨ 0 & 2 & !-inv-r (ρ (id₁ (map-pf R x))) ⟩
idp ◃∙
lamb (id₁ (map-pf R x)) ◃∎
=ₛ₁⟨ lamb-ρ-id₁-bc ⟩
ρ (id₁ (map-pf R x)) ◃∎ ∎ₛ
coher-assoc (Pstrans-id {R}) {x} {y} {z} f g = =ₛ-out $
! (! (ρ (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ∙ lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-◻ (str-pf R) f g) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (! (ρ (F₁ (str-pf R) f)) ∙ lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (! (ρ (F₁ (str-pf R) g)) ∙ lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 5 & 1 &
ap-!∙◃ (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g)) (lamb (F₁ (str-pf R) g)) ⟩
! (! (ρ (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ∙ lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-◻ (str-pf R) f g) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (! (ρ (F₁ (str-pf R) f)) ∙ lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 3 & 1 &
ap-!∙◃ (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (ρ (F₁ (str-pf R) f)) (lamb (F₁ (str-pf R) f)) ⟩
! (! (ρ (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ∙ lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-◻ (str-pf R) f g) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
! (ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (ρ (F₁ (str-pf R) f))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 0 & 1 & !-!-∙ (ρ (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) (lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ⟩
! (lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ◃∙
ρ (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f)) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ id₁ (map-pf R x)) (F-◻ (str-pf R) f g) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
! (ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (ρ (F₁ (str-pf R) f))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 1 & 2 & !ₛ (homotopy-naturality _ _ ρ (F-◻ (str-pf R) f g)) ⟩
! (lamb (F₁ (str-pf R) (⟦ ξB ⟧ g ◻ f))) ◃∙
ap (λ m → m) (F-◻ (str-pf R) f g) ◃∙
ρ (⟦ ξC ⟧ F₁ (str-pf R) g ◻ F₁ (str-pf R) f) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
! (ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (ρ (F₁ (str-pf R) f))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 0 & 2 & homotopy-naturality-! lamb (F-◻ (str-pf R) f g) ⟩
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g) ◃∙
! (lamb (⟦ ξC ⟧ F₁ (str-pf R) g ◻ F₁ (str-pf R) f)) ◃∙
ρ (⟦ ξC ⟧ F₁ (str-pf R) g ◻ F₁ (str-pf R) f) ◃∙
! (α (F₁ (str-pf R) g) (F₁ (str-pf R) f) (id₁ (map-pf R x))) ◃∙
! (ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (ρ (F₁ (str-pf R) f))) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 2 & 3 & trig-ρ-bc-rot-pre (F₁ (str-pf R) g) (F₁ (str-pf R) f) ⟩
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g) ◃∙
! (lamb (⟦ ξC ⟧ F₁ (str-pf R) g ◻ F₁ (str-pf R) f)) ◃∙
ap (λ m → ⟦ ξC ⟧ F₁ (str-pf R) g ◻ m) (lamb (F₁ (str-pf R) f)) ◃∙
α (F₁ (str-pf R) g) (id₁ (map-pf R y)) (F₁ (str-pf R) f) ◃∙
! (ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (ρ (F₁ (str-pf R) g))) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 2 & 3 & tri-bc◃-rot2-pre (F₁ (str-pf R) f) (F₁ (str-pf R) g) ⟩
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g) ◃∙
! (lamb (⟦ ξC ⟧ F₁ (str-pf R) g ◻ F₁ (str-pf R) f)) ◃∙
ap (λ m → ⟦ ξC ⟧ m ◻ F₁ (str-pf R) f) (lamb (F₁ (str-pf R) g)) ◃∙
! (α (id₁ (map-pf R z)) (F₁ (str-pf R) g) (F₁ (str-pf R) f)) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ⟨ 1 & 3 & trig-lamb-bc-rot3 (F₁ (str-pf R) g) (F₁ (str-pf R) f) ⟩
ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g) ◃∙
! (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ◃∎
=ₛ₁⟨ !-inv-r (ap (λ m → ⟦ ξC ⟧ id₁ (map-pf R z) ◻ m) (F-◻ (str-pf R) f g)) ⟩
idp ◃∎ ∎ₛ
ps-≃-id : {R : Psfunctor-nc {{ξB}} {{ξC}}} → R psf-≃ R
fst (ps-≃-id {R}) = Pstrans-id {R}
snd ps-≃-id _ = snd AdjEqv-id₁