Skip to content

Commit b9e725a

Browse files
committed
refactor: simplify throughout, making clear the relationship with NormalSubgroup
1 parent c29e7d7 commit b9e725a

File tree

1 file changed

+32
-42
lines changed

1 file changed

+32
-42
lines changed

src/Algebra/Construct/Centre/Group.agda

Lines changed: 32 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,10 @@ open import Algebra.Bundles using (AbelianGroup; Group)
1111
module Algebra.Construct.Centre.Group {c ℓ} (G : Group c ℓ) where
1212

1313
open import Algebra.Core using (Op₁; Op₂)
14-
open import Algebra.Definitions using (Commutative)
15-
open import Function.Base using (id; const; _$_; _on_)
14+
open import Function.Base using (id; _∘_; const; _$_; _on_)
1615
open import Level using (_⊔_)
17-
open import Relation.Binary.Core using (Rel)
1816
import Relation.Binary.Reasoning.Setoid as ≈-Reasoning
1917

20-
open import Algebra.Construct.Sub.Group G using (Subgroup)
2118
open import Algebra.Construct.Sub.Group.Normal G using (NormalSubgroup)
2219
open import Algebra.Properties.Group G using (∙-cancelʳ)
2320

@@ -31,59 +28,52 @@ private
3128

3229
record Carrier : Set (c ⊔ ℓ) where
3330
field
34-
commuter : G.Carrier
35-
commutes : k commuter G.∙ k G.≈ k G.∙ commuter
31+
ι : G.Carrier
32+
normal : g ι G.∙ g G.≈ g G.∙ ι
3633

37-
open Carrier using (commuter; commutes)
38-
39-
_≈_ : Rel Carrier ℓ
40-
_≈_ = G._≈_ on commuter
34+
open Carrier using (ι; normal)
4135

4236
_∙_ : Op₂ Carrier
4337
g ∙ h = record
44-
{ commuter = commuter g G.∙ commuter h
45-
; commutes = λ k begin
46-
(commuter g G.∙ commuter h) G.∙ k ≈⟨ G.assoc _ _ _ ⟩
47-
commuter g G.∙ (commuter h G.∙ k) ≈⟨ G.∙-congˡ $ commutes h k ⟩
48-
commuter g G.∙ (k G.∙ commuter h) ≈⟨ G.assoc _ _ _ ⟨
49-
commuter g G.∙ k G.∙ commuter h ≈⟨ G.∙-congʳ $ commutes g k ⟩
50-
k G.∙ commuter g G.∙ commuter h ≈⟨ G.assoc _ _ _ ⟩
51-
k G.∙ (commuter g G.∙ commuter h) ∎
38+
{ ι = ι g G.∙ ι h
39+
; normal = λ k begin
40+
(ι g G.∙ ι h) G.∙ k ≈⟨ G.assoc _ _ _ ⟩
41+
ι g G.∙ (ι h G.∙ k) ≈⟨ G.∙-congˡ $ normal h k ⟩
42+
ι g G.∙ (k G.∙ ι h) ≈⟨ G.assoc _ _ _ ⟨
43+
ι g G.∙ k G.∙ ι h ≈⟨ G.∙-congʳ $ normal g k ⟩
44+
k G.∙ ι g G.∙ ι h ≈⟨ G.assoc _ _ _ ⟩
45+
k G.∙ (ι g G.∙ ι h) ∎
5246
}
5347

5448
ε : Carrier
5549
ε = record
56-
{ commuter = G.ε
57-
; commutes = λ k G.trans (G.identityˡ k) (G.sym (G.identityʳ k))
50+
{ ι = G.ε
51+
; normal = λ k G.trans (G.identityˡ k) (G.sym (G.identityʳ k))
5852
}
5953

6054
_⁻¹ : Op₁ Carrier
6155
g ⁻¹ = record
62-
{ commuter = commuter g G.⁻¹
63-
; commutes = λ k ∙-cancelʳ (commuter g) _ _ $ begin
64-
(commuter g G.⁻¹ G.∙ k) G.∙ (commuter g) ≈⟨ G.assoc _ _ _ ⟩
65-
commuter g G.⁻¹ G.∙ (k G.∙ commuter g) ≈⟨ G.∙-congˡ $ commutes g k ⟨
66-
commuter g G.⁻¹ G.∙ (commuter g G.∙ k) ≈⟨ G.assoc _ _ _ ⟨
67-
(commuter g G.⁻¹ G.∙ commuter g) G.∙ k ≈⟨ G.∙-congʳ $ G.inverseˡ _ ⟩
68-
G.ε G.∙ k ≈⟨ commutes ε k ⟩
69-
k G.∙ G.ε ≈⟨ G.∙-congˡ $ G.inverseˡ _ ⟨
70-
k G.∙ (commuter g G.⁻¹ G.∙ commuter g) ≈⟨ G.assoc _ _ _ ⟨
71-
(k G.∙ commuter g G.⁻¹) G.∙ (commuter g) ∎
56+
{ ι = ι g G.⁻¹
57+
; normal = λ k ∙-cancelʳ (ι g) _ _ $ begin
58+
(ι g G.⁻¹ G.∙ k) G.∙ (ι g) ≈⟨ G.assoc _ _ _ ⟩
59+
ι g G.⁻¹ G.∙ (k G.∙ ι g) ≈⟨ G.∙-congˡ $ normal g k ⟨
60+
ι g G.⁻¹ G.∙ (ι g G.∙ k) ≈⟨ G.assoc _ _ _ ⟨
61+
(ι g G.⁻¹ G.∙ ι g) G.∙ k ≈⟨ G.∙-congʳ $ G.inverseˡ _ ⟩
62+
G.ε G.∙ k ≈⟨ normal ε k ⟩
63+
k G.∙ G.ε ≈⟨ G.∙-congˡ $ G.inverseˡ _ ⟨
64+
k G.∙ (ι g G.⁻¹ G.∙ ι g) ≈⟨ G.assoc _ _ _ ⟨
65+
(k G.∙ ι g G.⁻¹) G.∙ (ι g) ∎
7266
}
7367

74-
∙-comm : Commutative _≈_ _∙_
75-
∙-comm g h = commutes g $ commuter h
76-
77-
centre : NormalSubgroup (c ⊔ ℓ) ℓ
78-
centre = record
68+
normalSubgroup : NormalSubgroup (c ⊔ ℓ) ℓ
69+
normalSubgroup = record
7970
{ subgroup = record
8071
{ domain = record
81-
{ _≈_ = _≈_
82-
; _∙_ = _∙_
72+
{ _∙_ = _∙_
8373
; ε = ε
8474
; _⁻¹ = _⁻¹
8575
}
86-
; ι = commuter
76+
; ι = ι
8777
; ι-monomorphism = record
8878
{ isGroupHomomorphism = record
8979
{ isMonoidHomomorphism = record
@@ -100,22 +90,22 @@ private
10090
}
10191
; isNormal = record
10292
{ conjugate = const
103-
; normal = commutes
93+
; normal = normal
10494
}
10595
}
10696

10797

10898
------------------------------------------------------------------------
10999
-- Public exports
110100

111-
open NormalSubgroup centre public
101+
open NormalSubgroup normalSubgroup public
112102

113103
abelianGroup : AbelianGroup (c ⊔ ℓ) ℓ
114104
abelianGroup = record
115105
{ isAbelianGroup = record
116106
{ isGroup = isGroup
117-
; comm = ∙-comm
107+
; comm = λ g normal g ∘ ι
118108
}
119109
}
120110

121-
Z[_] = centre
111+
Z[_] = normalSubgroup

0 commit comments

Comments
 (0)