{-# OPTIONS --without-K --rewriting --overlapping-instances #-} open import HoTT open import Pi.Coxeter.Sn hiding (Sn) open import Pi.Coxeter.Group open import Pi.Coxeter.Coxeter open import Pi.Common.Extra open import Pi.Common.Misc module Pi.Coxeter.GeneratedGroupIso (n : ℕ) where open import Pi.Coxeter.GeneratedGroup n ηᴳ♯-β : ∀ w → GroupHom.f ηᴳ♯ q[ w ] == q[ map codiag w ] ηᴳ♯-β w = Word-extendᴳ-η w ∙ ap q[_] (Word-extendˢ-η w) η-εˢ : ∀ l → GroupHom.f ηᴳ♯ (εᴳ l) == q[ l ] η-εˢ l = ηᴳ♯-β (map inl l) ∙ ap q[_] (map-∘ inl codiag ∙ map-id) η-εᴳ : ∀ g → GroupHom.f ηᴳ♯ (GroupHom.f ε g) == g η-εᴳ = SetQuot-elim η-εˢ (λ r → prop-has-all-paths-↓) GRel-refl : ∀ w → w ≈ᴳ w GRel-refl w = idp {n} ε-ηˢ-w : ∀ w → map inl (map codiag w) ≈ᴳ w ε-ηˢ-w nil = GRel-refl nil ε-ηˢ-w (x :: w) = ::-respects-≈ {x = codiag x} (transport (_≈* (map codiag w)) (! (map-∘ inl codiag ∙ map-id)) (GRel-refl w)) ε-ηˢ : ∀ w → SetQuot-rec εᴳ εᴳ-respects-≈ (GroupHom.f ηᴳ♯ q[ w ]) == q[ w ] ε-ηˢ w = ap (SetQuot-rec εᴳ εᴳ-respects-≈) (ηᴳ♯-β w) ∙ quot-rel (GG.qwr-rel (ε-ηˢ-w w)) ε-ηᴳ : ∀ w → GroupHom.f ε (GroupHom.f ηᴳ♯ w) == w ε-ηᴳ = SetQuot-elim ε-ηˢ (λ r → prop-has-all-paths-↓)