1
------------------------------------------------------------------------
2
-- Some derivable properties
3
------------------------------------------------------------------------
7
module Algebra.Props.AbelianGroup (g : AbelianGroup) where
10
import Relation.Binary.EqReasoning as EqR; open EqR setoid
11
open import Data.Function
12
open import Data.Product
15
lemma : ∀ x y → x ∙ y ∙ x ⁻¹ ≈ y
17
x ∙ y ∙ x ⁻¹ ≈⟨ comm _ _ ⟨ ∙-cong ⟩ refl ⟩
18
y ∙ x ∙ x ⁻¹ ≈⟨ assoc _ _ _ ⟩
19
y ∙ (x ∙ x ⁻¹) ≈⟨ refl ⟨ ∙-cong ⟩ proj₂ inverse _ ⟩
20
y ∙ ε ≈⟨ proj₂ identity _ ⟩
23
-‿∙-comm : ∀ x y → x ⁻¹ ∙ y ⁻¹ ≈ (x ∙ y) ⁻¹
25
x ⁻¹ ∙ y ⁻¹ ≈⟨ comm _ _ ⟩
26
y ⁻¹ ∙ x ⁻¹ ≈⟨ sym $ lem ⟨ ∙-cong ⟩ refl ⟩
27
x ∙ (y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹) ∙ x ⁻¹ ≈⟨ lemma _ _ ⟩
28
y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹ ≈⟨ lemma _ _ ⟩
32
x ∙ (y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹) ≈⟨ sym $ assoc _ _ _ ⟩
33
x ∙ (y ∙ (x ∙ y) ⁻¹) ∙ y ⁻¹ ≈⟨ sym $ assoc _ _ _ ⟨ ∙-cong ⟩ refl ⟩
34
x ∙ y ∙ (x ∙ y) ⁻¹ ∙ y ⁻¹ ≈⟨ proj₂ inverse _ ⟨ ∙-cong ⟩ refl ⟩
35
ε ∙ y ⁻¹ ≈⟨ proj₁ identity _ ⟩