1
------------------------------------------------------------------------
2
-- The Agda standard library
4
-- Some derivable properties
5
------------------------------------------------------------------------
9
module Algebra.Properties.AbelianGroup
10
{g₁ g₂} (G : AbelianGroup g₁ g₂) where
12
import Algebra.Properties.Group as GP
13
open import Data.Product
15
import Relation.Binary.EqReasoning as EqR
23
lemma : ∀ x y → x ∙ y ∙ x ⁻¹ ≈ y
25
x ∙ y ∙ x ⁻¹ ≈⟨ comm _ _ ⟨ ∙-cong ⟩ refl ⟩
26
y ∙ x ∙ x ⁻¹ ≈⟨ assoc _ _ _ ⟩
27
y ∙ (x ∙ x ⁻¹) ≈⟨ refl ⟨ ∙-cong ⟩ proj₂ inverse _ ⟩
28
y ∙ ε ≈⟨ proj₂ identity _ ⟩
31
⁻¹-∙-comm : ∀ x y → x ⁻¹ ∙ y ⁻¹ ≈ (x ∙ y) ⁻¹
33
x ⁻¹ ∙ y ⁻¹ ≈⟨ comm _ _ ⟩
34
y ⁻¹ ∙ x ⁻¹ ≈⟨ sym $ lem ⟨ ∙-cong ⟩ refl ⟩
35
x ∙ (y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹) ∙ x ⁻¹ ≈⟨ lemma _ _ ⟩
36
y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹ ≈⟨ lemma _ _ ⟩
40
x ∙ (y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹) ≈⟨ sym $ assoc _ _ _ ⟩
41
x ∙ (y ∙ (x ∙ y) ⁻¹) ∙ y ⁻¹ ≈⟨ sym $ assoc _ _ _ ⟨ ∙-cong ⟩ refl ⟩
42
x ∙ y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹ ≈⟨ proj₂ inverse _ ⟨ ∙-cong ⟩ refl ⟩
43
ε ∙ y ⁻¹ ≈⟨ proj₁ identity _ ⟩