22
33open import GpdCont.Prelude
44open import Cubical.Algebra.Group.Base as AbsGroup renaming (GroupStr to AbsGroupStr ; Group to AbsGroup)
5+ open import Cubical.Algebra.Group.Properties using (module GroupTheory )
56open import Cubical.Algebra.Group.Morphisms using (GroupHom ; IsGroupHom ; GroupEquiv)
67open import Cubical.Algebra.Group.MorphismProperties using (isPropIsGroupHom ; makeIsGroupHom ; invGroupEquiv ; GroupEquiv→GroupHom)
78open import Cubical.Algebra.Group.GroupPath using (uaGroup)
@@ -13,6 +14,7 @@ private
1314
1415open import GpdCont.Groups.Base
1516open import GpdCont.Delooping.Base G as Delooping using (𝔹)
17+ open import GpdCont.Groups.Solve using (solveGroup)
1618open import GpdCont.Connectivity using (isPathConnected ; isPathConnected→merePath)
1719open import GpdCont.Univalence using (ua→)
1820
@@ -95,13 +97,19 @@ private
9597 ua (conjugateEquiv $ g · h) ∎
9698 where
9799 shuffle : ∀ x → inv h · (inv g · x · g) · h ≡ inv (g · h) · x · g · h
98- shuffle = {! !}
100+ shuffle x =
101+ inv h · (inv g · x · g) · h ≡⟨ lemma₁ (inv h) (inv g) x g h ⟩
102+ (inv h · inv g) · x · g · h ≡⟨ cong (λ - → - · x · g · h) (sym $ GroupTheory.invDistr G g h) ⟩
103+ inv (g · h) · x · g · h ∎
104+ where
105+ lemma₁ : (h⁻¹ g⁻¹ x g h : ⟨ G ⟩) → h⁻¹ · (g⁻¹ · x · g) · h ≡ (h⁻¹ · g⁻¹) · x · g · h
106+ lemma₁ = solveGroup G
99107
100108 mulRightIso : (g : ⟨ G ⟩) → Iso ⟨ G ⟩ ⟨ G ⟩
101109 mulRightIso g .Iso.fun = _· g
102110 mulRightIso g .Iso.inv = _· (inv g)
103- mulRightIso g .Iso.rightInv = {! !}
104- mulRightIso g .Iso.leftInv = {! !}
111+ mulRightIso g .Iso.rightInv h = sym (G.·Assoc h (inv g) g) ∙ cong (h ·_) (G.·InvL g) ∙ G.·IdR h
112+ mulRightIso g .Iso.leftInv h = sym (G.·Assoc h g (inv g)) ∙ cong (h ·_) (G.·InvR g) ∙ G.·IdR h
105113
106114 mulRightEquiv : (g : ⟨ G ⟩) → ⟨ G ⟩ ≃ ⟨ G ⟩
107115 mulRightEquiv g = isoToEquiv $ mulRightIso g
0 commit comments