Mercurial > hg > Members > kono > Proof > galois
changeset 265:1dbe1f357569
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 31 May 2022 09:49:12 +0900 |
parents | c4458b479a0f |
children | e6f9eb2bfc78 |
files | src/Fundamental.agda |
diffstat | 1 files changed, 28 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Fundamental.agda Tue May 31 08:47:46 2022 +0900 +++ b/src/Fundamental.agda Tue May 31 09:49:12 2022 +0900 @@ -28,8 +28,6 @@ -- G/K -- --- open import Relation.Binary.Structures --- open import Relation.Binary.Morphism.Structures import Relation.Binary.Reasoning.Setoid as EqReasoning open HomoMorphism @@ -43,7 +41,6 @@ cscong : {a b : Group.Carrier G } → Group._≈_ G a b → Coset G K a → Coset G K b open NormalSubGroup -- G has at least an element other than ε --- open import Relation.Binary.Structures φ : {G : Group c l} → {K : NormalSubGroup G} → (g x : Group.Carrier G ) → Coset G K x φ {G} {K} g x = cscong p01 ( coset (x ∙ (sub K g) ⁻¹ ) g) where @@ -54,26 +51,18 @@ x ∙ ε ≈⟨ proj₂ identity _ ⟩ x ∎ where open EqReasoning (Algebra.Group.setoid G ) +base1 : {G : Group c l} {K : NormalSubGroup G} → {x : Group.Carrier G } → Coset G K x → Group.Carrier G +base1 {G} (coset a b) = a ⁻¹ ∙ b where open Group G +base1 (cscong x y) = base1 y + base : {G : Group c l} {K : NormalSubGroup G} → ( (g : Group.Carrier G )→ Coset G K g) → Group.Carrier G base {G} {K} x = base1 (x ε) where -- with x ε won't work why? open Group G - base1 : {x : Carrier} → Coset G K x → Carrier - base1 (coset a b) = a ⁻¹ ∙ b - base1 (cscong x y) = base1 y -- Na ∙ Nb = Nab mul : {G : Group c l} {K : NormalSubGroup G} → (x y : (g : Group.Carrier G ) → Coset G K g ) → (g : Group.Carrier G ) → Coset G K g mul {G} {K} x y g = φ (base x ∙ base y) g where open Group G --- ceq : {G : Group c l } {K : NormalSubGroup G} → {a b : Group.Carrier G } → (x : Coset G K a) (y : Coset G K b) → Set l --- ceq {G} {K} (coset a b) (coset a₁ b₁) = Group._≈_ G (sub K b ) (sub K b₁) --- ceq (coset a b) (cscong eq y) = ceq (coset a b) y --- ceq (cscong eq x) (coset a b) = ceq x (coset a b) --- ceq (cscong eqx x) (cscong eqy y) = ceq x y - --- _==_ : {G : Group c l} {K : NormalSubGroup G} → (x y : (g : Group.Carrier G ) → Coset G K g ) → Set l --- _==_ {G} {K} x y = ceq (x ε) (y ε) where open Group G - inv : {G : Group c l} {K : NormalSubGroup G} → ( (g : Group.Carrier G )→ Coset G K g) → ( (g : Group.Carrier G )→ Coset G K g) inv {G} {K} x g = inv1 (x g) where open Group G @@ -87,18 +76,21 @@ -- import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) -- open HE +import Axiom.Extensionality.Propositional +postulate f-extensionality : { n m : Level} → Axiom.Extensionality.Propositional.Extensionality n m + -- G / K : Quotient -_/_ : (G : Group c l) (K : NormalSubGroup G) → Group ( c Level.⊔ l ) ( c Level.⊔ l ) +_/_ : (G : Group c l) (K : NormalSubGroup G) → Group ( c Level.⊔ l ) l G / K = record { Carrier = (g : Group.Carrier G ) → Coset G K g - ; _≈_ = λ x y → x ≡ y + ; _≈_ = λ x y → Group._≈_ G (sub K (base x)) (sub K (base y)) ; _∙_ = λ x y → mul x y ; ε = φ (Group.ε G ) ; _⁻¹ = λ x → inv x ; isGroup = record { isMonoid = record { isSemigroup = record { isMagma = record { - isEquivalence = record { refl = refl ; sym = sym ; trans = trans } - ; ∙-cong = λ {x y u v} → cresp } - ; assoc = {!!} } + isEquivalence = record { refl = grefl G ; sym = gsym G ; trans = gtrans G } + ; ∙-cong = λ {x y u v} → cresp {x} {y} {u} {v} } + ; assoc = assoc1 } ; identity = {!!} } ; inverse = {!!} ; ⁻¹-cong = λ {x} {y} → {!!} @@ -107,10 +99,22 @@ open Group G hiding (refl ; sym ; trans ) open EqReasoning (Algebra.Group.setoid G) open IsGroupHomomorphism (s-homo K ) - cresp : {x y u v : COSET G K} → x ≡ y → u ≡ v → mul x u ≡ mul y v - cresp {x} {y} {u} {v} refl refl = refl - assoc1 : {x y z : COSET G K} → mul x ( mul y z ) ≡ mul (mul x y ) z - assoc1 = {!!} + mbase : {x y : COSET G K} → base (mul x y) ≈ sub K (base x ∙ base y) + mbase {x} {y} = mbase1 (x ε) (y ε) where + mbase1 : {a b : Carrier } → Coset G K a → Coset G K b → base (mul x y) ≈ sub K (base x ∙ base y) + mbase1 (coset a b) (coset a₁ b₁) = begin + (ε ∙ sub K (base1 (x ε) ∙ base1 (y ε)) ⁻¹) ⁻¹ ∙ (base1 (x ε) ∙ base1 (y ε)) ≈⟨ {!!} ⟩ + (sub K (base1 (x ε) ∙ base1 (y ε)) ⁻¹) ⁻¹ ∙ (base1 (x ε) ∙ base1 (y ε)) ≈⟨ {!!} ⟩ + (sub K (base1 (x ε) ∙ base1 (y ε))) ∙ (base1 (x ε) ∙ base1 (y ε)) ≈⟨ {!!} ⟩ + sub K (base1 (x ε) ∙ base1 (y ε)) ∎ + mbase1 (coset a b) (cscong x t) = mbase1 (coset a b) t + mbase1 (cscong eq s) (coset a b) = mbase1 s (coset a b) + mbase1 (cscong eqs s) (cscong eqt t) = mbase1 s t + cresp : {x y u v : COSET G K} → sub K (base x) ≈ sub K (base y) → sub K (base u )≈ sub K (base v) + → sub K (base (mul x u)) ≈ sub K (base (mul y v)) + cresp {x} {y} {u} {v} x=y u=v = {!!} + assoc1 : (x y z : COSET G K) → sub K (base (mul (mul x y ) z)) ≈ sub K (base (mul x ( mul y z ) )) + assoc1 x y z = {!!} where -- crefl1 (coset a b) = ⟦⟧-cong (grefl G) -- K ⊂ ker(f)