Mercurial > hg > Members > kono > Proof > galois
diff src/NormalSubGroup.agda @ 307:7ef312aa0235
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 11 Sep 2023 09:02:40 +0900 |
parents | 3812936d52c8 |
children |
line wrap: on
line diff
--- a/src/NormalSubGroup.agda Sat Sep 09 11:20:21 2023 +0900 +++ b/src/NormalSubGroup.agda Mon Sep 11 09:02:40 2023 +0900 @@ -54,9 +54,7 @@ infixr 9 _<_∙_> --- assuming Homomorphism is too strong --- -record NormalSubGroup {l c d : Level} (A : Group c d ) : Set (Level.suc (l Level.⊔ (c Level.⊔ d))) where +record SubGroup {l c d : Level} (A : Group c d ) : Set (Level.suc (l Level.⊔ (c Level.⊔ d))) where open Group A field P : Carrier → Set l @@ -64,21 +62,38 @@ P⁻¹ : (a : Carrier ) → P a → P (a ⁻¹) P≈ : {a b : Carrier } → a ≈ b → P a → P b P∙ : {a b : Carrier } → P a → P b → P ( a ∙ b ) + +-- assuming Homomorphism is too strong +-- +record NormalSubGroup {l c d : Level} (A : Group c d ) : Set (Level.suc (l Level.⊔ (c Level.⊔ d))) where + open Group A + field + Psub : SubGroup {l} A -- gN ≈ Ng - Pcomm : {a b : Carrier } → P a → P ( b ∙ ( a ∙ b ⁻¹ ) ) + Pcomm : {a b : Carrier } → SubGroup.P Psub a → SubGroup.P Psub ( b ∙ ( a ∙ b ⁻¹ ) ) + P : Carrier → Set l + P = SubGroup.P Psub + Pε : P ε + Pε = SubGroup.Pε Psub + P⁻¹ : (a : Carrier ) → P a → P (a ⁻¹) + P⁻¹ = SubGroup.P⁻¹ Psub + P≈ : {a b : Carrier } → a ≈ b → P a → P b + P≈ = SubGroup.P≈ Psub + P∙ : {a b : Carrier } → P a → P b → P ( a ∙ b ) + P∙ = SubGroup.P∙ Psub import Relation.Binary.Reasoning.Setoid as EqReasoning -record Nelm {c d : Level} {A : Group c d } (n : NormalSubGroup {d} A) : Set (Level.suc c ⊔ d) where +record Nelm {c d e : Level} (A : Group c d ) (n : SubGroup {e} A) : Set (Level.suc e ⊔ (Level.suc c ⊔ d)) where open Group A - open NormalSubGroup n + open SubGroup n field elm : Carrier Pelm : P elm -NGroup : {c d : Level} {A : Group c d } (n : NormalSubGroup A) → Group (Level.suc c ⊔ d) d -NGroup {_} {_} {A} n = record { - Carrier = Nelm n +SGroup : {c d e : Level} (A : Group c d ) (n : SubGroup {e} A) → Group (Level.suc e ⊔ (Level.suc c ⊔ d)) d +SGroup {_} {_} {_} A n = record { + Carrier = Nelm A n ; _≈_ = λ x y → elm x ≈ elm y ; _∙_ = λ x y → record { elm = elm x ∙ elm y ; Pelm = P∙ (Pelm x) (Pelm y) } ; ε = record { elm = ε ; Pelm = Pε } @@ -94,7 +109,7 @@ ; ⁻¹-cong = IsGroup.⁻¹-cong ga } } where open Group A - open NormalSubGroup n + open SubGroup n open Nelm ga = Group.isGroup A