changeset 184:59d12d02dfa8

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 26 Nov 2020 14:09:54 +0900
parents 0dce8a009f4a
children b99927719b8e
files FLComm.agda Putil.agda README.md sym2.agda sym2n.agda sym3n.agda sym4.agda sym5.agda sym5n.agda
diffstat 9 files changed, 68 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/FLComm.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/FLComm.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -53,5 +53,5 @@
 CommStage→ (suc i) x (gen {f} {g} p q) = {!!}
 CommStage→ (suc i) x (ccong {f} {g} eq p) = {!!}
 
-CommSolved : (x : Permutation n n) → (y : FList n) → y ≡ FL0 ∷# [] → (perm→FL x ≡ FL0 → x =p= pid ) → Any (perm→FL x ≡_) y → x =p= pid
-CommSolved x .(cons FL0 [] (Level.lift tt)) refl fl0→pid (here eq) = fl0→pid eq
+CommSolved : (x : Permutation n n) → (y : FList n) → y ≡ FL0 ∷# [] → (FL→perm (FL0 {n}) =p= pid ) → Any (perm→FL x ≡_) y → x =p= pid
+CommSolved x .(cons FL0 [] (Level.lift tt)) refl eq0 (here eq) = FLpid _ eq eq0
--- a/Putil.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/Putil.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -678,6 +678,14 @@
 
 -- FLpid : (n : ℕ) → (x : Permutation n n) → perm→FL x ≡ FL0 → x =p= pid
 
+FLpid :  {n : ℕ} → (x : Permutation n n) → perm→FL x ≡ FL0 → FL→perm FL0 =p= pid   → x =p= pid
+FLpid x eq p0id = ptrans pf2 (ptrans pf0 p0id ) where
+   pf2 : x =p= FL→perm (perm→FL x)
+   pf2 = psym (FL←iso x)
+   pf0 : FL→perm (perm→FL x) =p= FL→perm FL0
+   pf0 = pcong-Fp eq
+
+
 lem2 : {i n : ℕ } → i ≤ n → i ≤ suc n
 lem2 i≤n = ≤-trans i≤n ( a≤sa )
 
--- a/README.md	Thu Nov 26 13:19:42 2020 +0900
+++ b/README.md	Thu Nov 26 14:09:54 2020 +0900
@@ -20,8 +20,14 @@
 sym4.agda            Symmetric 4 is solvable
 sym5.agda            Symmetric 5 is not solvable
 
+FLutil.agda          unique concrete representation of Permutation
+                     with Fresh List
+FLComm.agda          Solvable in FL / FList
+
+sym2n.agda           proved by Any
+sym3n.agda           
+sym4n.agda           
 
 ```
 
-Todo :  Use Data.List.Fresh to obtain all list of FL, and Commutator of FL.
-        It should make sym2, sym3 and sym4 simpler.
+Todo :  some proofs in FLutil / FLComm are not finished
--- a/sym2.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/sym2.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -13,6 +13,7 @@
 
 open import Gutil 
 open import Putil 
+open import FLutil 
 open import Solvable using (solvable)
 open import  Relation.Binary.PropositionalEquality hiding ( [_] )
 
--- a/sym2n.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/sym2n.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -44,14 +44,7 @@
    stage2FList = refl
 
    solved1 :  (x : Permutation 2 2) → deriving 1 x → x =p= pid
-   solved1 x dr = CommSolved 2 x ( CommFListN 2 1 ) stage2FList pf solved0 where
-      --    p0id :  FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0))) =p= pid
-      pf : perm→FL x ≡ FL0 → x =p= pid
-      pf eq = ptrans pf1 (ptrans pf0 p0id ) where
-         pf1 : x =p= FL→perm (perm→FL x)
-         pf1 = psym (FL←iso x)
-         pf0 : FL→perm (perm→FL x) =p= FL→perm FL0
-         pf0 = pcong-Fp eq
+   solved1 x dr = CommSolved 2 x ( CommFListN 2 1 ) stage2FList p0id solved0 where
       solved0 : Any (perm→FL x ≡_) ( CommFListN 2 1 )
       solved0 = CommStage→ 2 1 x dr
 
--- a/sym3n.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/sym3n.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -44,14 +44,7 @@
    stage3FList = refl
 
    solved1 :  (x : Permutation 3 3) → deriving 2 x → x =p= pid
-   solved1 x dr = CommSolved 3 x ( CommFListN 3 2 ) stage3FList pf solved2 where
-      --    p0id :  FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0))) =p= pid
-      pf : perm→FL x ≡ FL0 → x =p= pid
-      pf eq = ptrans pf2 (ptrans pf0 p0id ) where
-         pf2 : x =p= FL→perm (perm→FL x)
-         pf2 = psym (FL←iso x)
-         pf0 : FL→perm (perm→FL x) =p= FL→perm FL0
-         pf0 = pcong-Fp eq
+   solved1 x dr = CommSolved 3 x ( CommFListN 3 2 ) stage3FList p0id solved2 where
       solved2 : Any (perm→FL x ≡_) ( CommFListN 3 2 )
       solved2 = CommStage→ 3 2 x dr
 
--- a/sym4.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/sym4.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -27,18 +27,13 @@
 solvable.end sym4solvable x d = solved1 x d where
 
    open import Data.List using ( List ; [] ; _∷_ )
-
    open Solvable (Symmetric 4)
-   -- open Group (Symmetric 2) using (_⁻¹)
-
-   open _=p=_
 
    -- Klien
    --
    --  1                     (1,2),(3,4)           (1,3),(2,4)           (1,4),(2,3)
    --  0 ∷ 1 ∷ 2 ∷ 3 ∷ [] ,  1 ∷ 0 ∷ 3 ∷ 2 ∷ [] ,  2 ∷ 3 ∷ 0 ∷ 1 ∷ [] ,  3 ∷ 2 ∷ 1 ∷ 0 ∷ [] ,  
 
-
    a0 =  pid {4}
    a1 =  pswap (pswap (pid {0}))
    a2 =  pid {4} ∘ₚ pins (n≤ 3) ∘ₚ pins (n≤ 3 ) 
@@ -61,13 +56,7 @@
    stage3FList = refl
  
    solved1 :  (x : Permutation 4 4) → deriving 3 x → x =p= pid 
-   solved1 x dr = CommSolved 4 x ( CommFListN 4 3 ) stage3FList pf solved2 where
+   solved1 x dr = CommSolved 4 x ( CommFListN 4 3 ) stage3FList p0id solved2 where
       --    p0id :  FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0))) =p= pid
-      pf : perm→FL x ≡ FL0 → x =p= pid
-      pf eq = ptrans pf2 (ptrans pf0 p0id ) where
-         pf2 : x =p= FL→perm (perm→FL x)
-         pf2 = psym (FL←iso x)
-         pf0 : FL→perm (perm→FL x) =p= FL→perm FL0
-         pf0 = pcong-Fp eq
       solved2 : Any (perm→FL x ≡_) ( CommFListN 4 3 )
       solved2 = CommStage→ 4 3 x dr 
--- a/sym5.agda	Thu Nov 26 13:19:42 2020 +0900
+++ b/sym5.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -32,7 +32,6 @@
 
 ¬sym5solvable : ¬ ( solvable (Symmetric 5) )
 ¬sym5solvable sol = counter-example (end5 (abc 0<3 0<4 ) (dervie-any-3rot0 (dervied-length sol) 0<3 0<4 ) ) where
-
 --
 --    dba       1320      d → b → a → d
 --    (dba)⁻¹   3021      a → b → d → a
@@ -75,6 +74,10 @@
      dba : {i j : ℕ }  → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation  5 5
      dba i<3 j<4 = ins2 (3rot ∘ₚ 3rot) i<3 j<4
 
+     counter-example :  ¬ (abc 0<3 0<4  =p= pid )
+     counter-example eq with ←pleq _ _ eq
+     ...  | ()
+
      record Triple {i j : ℕ } (i<3 : i ≤ 3) (j<4 : j ≤ 4) (rot : Permutation 3 3) : Set where
        field 
          dba0<3 : Fin 4
@@ -196,11 +199,6 @@
         tc = triple i<3 j<4
         dba0 = dba (fin≤n {3} (dba0<3 tc)) (fin≤n {4} (dba1<4 tc))
         aec0 = dba (fin≤n {3} (aec0<3 tc)) (fin≤n {4} (aec1<4 tc))
-        --
-        -- abc= : ins2 rot i<3 j<4 =p= [ ins2 (rot ∘ₚ rot)  (fin≤n {3} dba0<3) (fin≤n {4} dba1<4)  , ins2 (rot ∘ₚ rot) (fin≤n {3} aec0<3) (fin≤n {4} aec1<4) ]
-        --
-        ceq'  : ins2 3rot i<3 j<4 =p= [ ins2 (3rot ∘ₚ 3rot)  (fin≤n {3} (dba0<3 tc)) (fin≤n {4} (dba1<4 tc))  , ins2 (3rot ∘ₚ 3rot) (fin≤n {3} (aec0<3 tc )) (fin≤n {4} (aec1<4 tc)) ]
-        ceq'  = abc= tc
         ceq : abc i<3 j<4  =p=  [ dba0 , aec0 ]  
         ceq = record { peq = peq (abc= tc) }
         df =  dervie-any-3rot1 i  (fin≤n {3} (dba0<3 tc)) (fin≤n {4} (dba1<4 tc))
@@ -220,9 +218,3 @@
         dg = deriving-subst (psym (ins2cong {toℕ (aec0<3 (dba-triple i<3 j<4))} {toℕ (aec1<4 (dba-triple i<3 j<4))} 4=1 )) 
              (dervie-any-3rot0 n  (fin≤n {3} (aec0<3 tdba)) (fin≤n {4} (aec1<4 tdba)))
 
-     open _=p=_
-     counter-example :  ¬ (abc 0<3 0<4  =p= pid )
-     counter-example eq with ←pleq _ _ eq
-     ...  | ()
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sym5n.agda	Thu Nov 26 14:09:54 2020 +0900
@@ -0,0 +1,42 @@
+open import Level hiding ( suc ; zero )
+open import Algebra
+module sym5n where
+
+open import Symmetric 
+open import Data.Unit
+open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_)
+open import Function
+open import Data.Nat hiding (_⊔_) -- using (ℕ; suc; zero)
+open import Relation.Nullary
+open import Data.Empty
+open import Data.Product
+
+open import Gutil 
+open import Putil 
+open import Solvable using (solvable)
+open import  Relation.Binary.PropositionalEquality hiding ( [_] )
+
+open import Data.Fin
+open import Data.Fin.Permutation hiding (_∘ₚ_)
+
+infixr  200 _∘ₚ_
+_∘ₚ_ = Data.Fin.Permutation._∘ₚ_
+
+sym5solvable : ¬ solvable (Symmetric 5)
+sym5solvable = {!!} where
+
+   open import Data.List using ( List ; [] ; _∷_ )
+   open Solvable (Symmetric 5)
+
+   open import FLutil
+   open import Data.List.Fresh hiding ([_])
+   open import Relation.Nary using (⌊_⌋)
+
+   p0id :  FL→perm (zero :: zero :: zero :: (zero :: (zero :: f0))) =p= pid
+   p0id = pleq _ _ refl
+
+   open import Data.List.Fresh.Relation.Unary.Any
+   open import FLComm
+
+   stage4FList = CommFListN 5 2 
+