Mercurial > hg > Members > kono > Proof > galois
changeset 4:121213cfc85a
add Solvable
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 16 Aug 2020 19:50:43 +0900 |
parents | 6e77fefcbe41 |
children | 92a164e1f6b6 |
files | PermGroup.agda Solvable.agda |
diffstat | 2 files changed, 34 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/PermGroup.agda Sun Aug 16 16:03:23 2020 +0900 +++ b/PermGroup.agda Sun Aug 16 19:50:43 2020 +0900 @@ -1,4 +1,4 @@ -module PermAbel where +module PermGroup where open import Level hiding ( suc ; zero ) open import Algebra @@ -53,8 +53,8 @@ ptrans : {p : ℕ } { x y z : Permutation p p } → x =p= y → y =p= z → x =p= z peq (ptrans {p} {x} {y} x=y y=z ) q = trans (peq x=y q) (peq y=z q) -pgroup : ℕ → Group Level.zero Level.zero -pgroup p = record { +Pgroup : ℕ → Group Level.zero Level.zero +Pgroup p = record { Carrier = Permutation p p ; _≈_ = _=p=_ ; _∙_ = _∘ₚ_ @@ -77,13 +77,10 @@ passoc x y z = record { peq = λ q → refl } p-inv : {i j : Permutation p p} → i =p= j → (q : Fin p) → pinv i ⟨$⟩ʳ q ≡ pinv j ⟨$⟩ʳ q p-inv {i} {j} i=j q = begin - i ⟨$⟩ˡ q - ≡⟨ cong (λ k → i ⟨$⟩ˡ k) (sym (inverseʳ j) ) ⟩ - i ⟨$⟩ˡ ( j ⟨$⟩ʳ ( j ⟨$⟩ˡ q )) - ≡⟨ cong (λ k → i ⟨$⟩ˡ k) (sym (peq i=j _ )) ⟩ - i ⟨$⟩ˡ ( i ⟨$⟩ʳ ( j ⟨$⟩ˡ q )) - ≡⟨ inverseˡ i ⟩ - j ⟨$⟩ˡ q + i ⟨$⟩ˡ q ≡⟨ cong (λ k → i ⟨$⟩ˡ k) (sym (inverseʳ j) ) ⟩ + i ⟨$⟩ˡ ( j ⟨$⟩ʳ ( j ⟨$⟩ˡ q )) ≡⟨ cong (λ k → i ⟨$⟩ˡ k) (sym (peq i=j _ )) ⟩ + i ⟨$⟩ˡ ( i ⟨$⟩ʳ ( j ⟨$⟩ˡ q )) ≡⟨ inverseˡ i ⟩ + j ⟨$⟩ˡ q ∎ where open ≡-Reasoning
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Solvable.agda Sun Aug 16 19:50:43 2020 +0900 @@ -0,0 +1,27 @@ +open import Level hiding ( suc ; zero ) +open import Algebra +module Solvable {n m : Level} (G : Group n m ) where + +open import Data.Unit +open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_) +open import Data.Nat using (ℕ; suc; zero) +open import Relation.Nullary +open import Data.Empty + +open Group G + +[_,_] : Carrier → Carrier → Carrier +[ g , h ] = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ h + +data Commutator (P : Carrier → Set (Level.suc n)) : (f : Carrier) → Set (Level.suc n) where + uni : Commutator P ε + gen : (f g h : Carrier) → P g → P h → Commutator P f → Commutator P ( f ∙ [ g , h ] ) + +deriving : ( i : ℕ ) → Carrier → Set (Level.suc n) +deriving 0 x = Lift (Level.suc n) ⊤ +deriving (suc i) x = Commutator (deriving i) x + +record Solvable : Set (Level.suc n ⊔ m) where + field + dervied-length : ℕ + end : (x : Carrier ) → deriving dervied-length x → x ≈ ε