{-# OPTIONS --without-K --rewriting --lossy-unification --overlapping-instances --instance-search-depth=4 #-}
open import lib.Basics
open import lib.NType2
open import lib.types.Sigma
open import lib.Equivalence2 hiding (linv; rinv)
open import lib.types.LoopSpace
open import 2Semigroup
open import 2Grp
open import Hmtpy2Grp
open import Codes
open import Decode0
open import Decode1
module Decode2 where
module _ {i} {G : Type i} {{η : CohGrp G}} where
open CohGrp {{...}}
open import Delooping G
open WkSGrpNatIso
module _ (x y : G) where
abstract
code-β-mu-opt :
θ codes-β (mu x y) ◃∎
=ₛ
! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y)) ◃∙
ap2 _∙_ (θ codes-β x) (θ codes-β y) ◃∙
! (ua-∘e ((λ z → mu z x) , mu-post-iso x) ((λ z → mu z y) , mu-post-iso y)) ◃∙
ap ua (pair= (λ= (λ v → ! (al v x y))) prop-has-all-paths-↓) ◃∎
code-β-mu-opt =
codes-β-mu x y ∙ₛ
code-β-mu-opt-g x y
(! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y)))
code-β-mu-ap : (z : G) →
ap (λ q → coe q z) (θ codes-β (mu x y)) ◃∎
=ₛ
ap (λ q → coe q z)
(! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y))) ◃∙
ap (λ q → coe q z) (ap2 _∙_ (θ codes-β x) (θ codes-β y)) ◃∙
ap (λ q → coe q z)
(! (ua-∘e ((λ z → mu z x) , mu-post-iso x) ((λ z → mu z y) , mu-post-iso y))) ◃∙
! (app= (ap coe (ap ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓))) z) ◃∎
code-β-mu-ap z =
ap (λ q → coe q z) (θ codes-β (mu x y)) ◃∎
=ₛ⟨ ap-seq-=ₛ (λ q → coe q z) code-β-mu-opt ⟩
ap (λ q → coe q z)
(! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y))) ◃∙
ap (λ q → coe q z) (ap2 _∙_ (θ codes-β x) (θ codes-β y)) ◃∙
ap (λ q → coe q z)
(! (ua-∘e ((λ z → mu z x) , mu-post-iso x) ((λ z → mu z y) , mu-post-iso y))) ◃∙
ap (λ q → coe q z) (ap ua (pair= (λ= (λ v → ! (al v x y))) prop-has-all-paths-↓)) ◃∎
=ₛ₁⟨ 3 & 1 &
ap-∘ (λ u → u z) coe
(ap ua (pair= (λ= (λ v → ! (al v x y))) prop-has-all-paths-↓)) ∙
ap (λ q → ap (λ u → u z) (ap coe (ap ua (pair= q prop-has-all-paths-↓))))
(!-λ= (λ v → al v x y)) ∙
ap (λ q → ap (λ u → u z) (ap coe (ap ua (pair= (! (λ= (λ v → al {{η}} v x y))) q))))
(prop-has-all-paths {{↓-level}}_ _) ∙
ap (λ q → ap (λ u → u z) (ap coe (ap ua q))) (! (Σ-! prop-has-all-paths-↓)) ∙
ap (ap (λ u → u z) ∘ ap coe) (ap-! ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓)) ∙
ap (ap (λ u → u z)) (ap-! coe (ap ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓))) ∙
ap-! (λ u → u z) (ap coe (ap ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓))) ⟩
ap (λ q → coe q z)
(! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y))) ◃∙
ap (λ q → coe q z) (ap2 _∙_ (θ codes-β x) (θ codes-β y)) ◃∙
ap (λ q → coe q z)
(! (ua-∘e ((λ z → mu z x) , mu-post-iso x) ((λ z → mu z y) , mu-post-iso y))) ◃∙
! (app= (ap coe (ap ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓))) z) ◃∎ ∎ₛ
code-β-mu-ap2 : (z : G) →
ap loop (ap (λ q → coe q z) (θ codes-β (mu x y))) ◃∎
=ₛ
ap loop (ap (λ q → coe q z)
(! ((∙-ap fst (ap codes (loop x)) (ap codes (loop y)) ∙
ap (ap fst) (∙-Ω-fmap (codes , idp) (loop x) (loop y))) ∙
ap (ap fst ∘ ap codes) (loop-comp x y)))) ◃∙
ap loop (ap (λ q → coe q z) (ap2 _∙_ (θ codes-β x) (θ codes-β y))) ◃∙
ap loop (ap (λ q → coe q z)
(! (ua-∘e ((λ z → mu z x) , mu-post-iso x) ((λ z → mu z y) , mu-post-iso y)))) ◃∙
ap loop (! (app= (ap coe (ap ua (pair= (λ= (λ v → al v x y)) prop-has-all-paths-↓))) z)) ◃∎
code-β-mu-ap2 z = ap-seq-=ₛ loop (code-β-mu-ap z)
abstract
loop-comp-decode6 : (z : G) →
transport
(λ v → loop (transport codes-fst (loop y) v) == loop v ∙ loop y)
(! (↯ (transp-codes x z)))
(ap loop (↯ (transp-codes y (mu z x))) ∙ ! (loop-comp (mu z x) y)) ◃∙
! (transp-cst=idf (loop y) (loop (transport codes-fst (loop x) z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (ap loop (↯ (transp-codes x z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (loop-comp z x)) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (transp-cst=idf (loop x) (loop z))) ◃∙
! (transp-∙ (loop x) (loop y) (loop z)) ◃∙
ap (λ p → transport (λ b → base == b) p (loop z)) (loop-comp x y) ◃∎
=ₛ
ap loop (↯ (transp-codes y (transport codes-fst (loop x) z))) ◃∙
! (loop-comp (transport codes-fst (loop x) z) y) ◃∙
! (transp-cst=idf (loop y) (loop (transport codes-fst (loop x) z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (ap loop (↯ (transp-codes x z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (loop-comp z x)) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (transp-cst=idf (loop x) (loop z))) ◃∙
! (transp-∙ (loop x) (loop y) (loop z)) ◃∙
ap (λ p → transport (λ b → base == b) p (loop z)) (loop-comp x y) ◃∎
loop-comp-decode6 z =
transport
(λ v → loop (transport codes-fst (loop y) v) == loop v ∙ loop y)
(! (↯ (transp-codes x z)))
(ap loop (↯ (transp-codes y (mu z x))) ∙ ! (loop-comp (mu z x) y)) ◃∙
! (transp-cst=idf (loop y) (loop (transport codes-fst (loop x) z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (ap loop (↯ (transp-codes x z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (loop-comp z x)) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (transp-cst=idf (loop x) (loop z))) ◃∙
! (transp-∙ (loop x) (loop y) (loop z)) ◃∙
ap (λ p → transport (λ b → base == b) p (loop z)) (loop-comp x y) ◃∎
=ₑ⟨ 0 & 1 &
(ap loop (↯ (transp-codes y (transport codes-fst (loop x) z))) ◃∙
! (loop-comp (transport codes-fst (loop x) z) y) ◃∎) %
=ₛ-in $
apd-tr (λ v → ap loop (↯ (transp-codes y v)) ∙ ! (loop-comp v y))
(! (↯ (transp-codes x z))) ⟩
ap loop (↯ (transp-codes y (transport codes-fst (loop x) z))) ◃∙
! (loop-comp (transport codes-fst (loop x) z) y) ◃∙
! (transp-cst=idf (loop y) (loop (transport codes-fst (loop x) z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (ap loop (↯ (transp-codes x z))) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (loop-comp z x)) ◃∙
ap (transport (λ b → base == b) (loop y)) (! (transp-cst=idf (loop x) (loop z))) ◃∙
! (transp-∙ (loop x) (loop y) (loop z)) ◃∙
ap (λ p → transport (λ b → base == b) p (loop z)) (loop-comp x y) ◃∎ ∎ₛ