view sym5.agda @ 83:f2edc816740b

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 26 Aug 2020 19:53:24 +0900
parents fcb9e29d1894
children 7e36bd8916a9
line wrap: on
line source

open import Level hiding ( suc ; zero )
open import Algebra
module sym5 where

open import Symmetric 
open import Data.Unit using (⊤ ; tt )
open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_)
open import Function hiding (flip)
open import Data.Nat hiding (_⊔_) -- using (ℕ; suc; zero)
open import Data.Nat.Properties
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 hiding (_<_ ; _≤_  ; lift )
open import Data.Fin.Permutation
open import Data.List  hiding ( [_] )
open import nat
open import fin

¬sym5solvable : ¬ ( solvable (Symmetric 5) )
¬sym5solvable sol = counter-example (end5 (abc 0<3 0<4 ) (dervie-any-3rot (dervied-length sol) 0<3 0<4 ) ) where

--
--    dba       1320      d → b → a → d
--    (dba)⁻¹   3021      a → b → d → a
--    aec       21430
--    (aec)⁻¹   41032
--    (abd)(cea)(dba)(aec)
-- 

     open solvable
     open Solvable (Symmetric 5) 
     end5 : (x : Permutation 5 5) → deriving (dervied-length sol) x →  x =p= pid  
     end5 x der = end sol x der

     0<4 : 0 < 4
     0<4 = s≤s z≤n

     0<3 : 0 < 3
     0<3 = s≤s z≤n

     --- 1 ∷ 2 ∷ 0 ∷ []      abc
     3rot : Permutation 3 3
     3rot = pid {3} ∘ₚ pins (n≤ 2)

     ins2 : {i j : ℕ }  → Permutation 3 3  → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation  5 5
     ins2 abc i<3 j<4 = (save2 ∘ₚ (pprep (pprep abc))) ∘ₚ flip save2  where
          save2 : Permutation  5 5
          save2 = ( (( pid {5} ∘ₚ flip (pins (s≤s i<3) ) )) ∘ₚ flip (pins j<4)) 

     abc : {i j : ℕ }  → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation  5 5
     abc i<3 j<4 = ins2 3rot i<3 j<4

     dba : {i j : ℕ }  → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation  5 5
     dba i<3 j<4 = ins2 (3rot ∘ₚ 3rot) i<3 j<4
     aec : {i j : ℕ }  → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation  5 5
     aec i<3 j<4 = ins2 (pinv 3rot) i<3 j<4

     record Triple {i j : ℕ } (i<3 : i ≤ 3) (j<4 : j ≤ 4) : Set where
       field 
         dba0<3 : Fin 4
         dba1<4 : Fin 5
         aec0<3 : Fin 4
         aec1<4 : Fin 5
         abc= : abc i<3 j<4 =p= [ dba (fin≤n {3} dba0<3) (fin≤n {4} dba1<4)  , aec (fin≤n {3} aec0<3) (fin≤n {4} aec1<4) ]

     open Triple
     --                                    d   e   a   b   c
     t1 = plist ( abc (n≤ 0) (n≤ 0) )  -- (  ∷   ∷ 3 ∷ 4 ∷ 2 ∷ []) ∷    no 4 on top
        ∷  plist ( abc (n≤ 0) (n≤ 1) )  -- (  ∷   ∷ 3 ∷ 4 ∷ 2 ∷ []) ∷    342 043 312
       ∷  plist ( abc (n≤ 0) (n≤ 2) )  -- (3 ∷   ∷   ∷ 4 ∷ 0 ∷ []) ∷
       ∷  plist ( abc (n≤ 0) (n≤ 3) )  -- (2 ∷   ∷ 4 ∷   ∷ 0 ∷ []) ∷   
       ∷  plist ( abc (n≤ 0) (n≤ 4) )  -- (2 ∷   ∷ 3 ∷ 0 ∷   ∷ []) ∷  
       ∷  plist ( abc (n≤ 1) (n≤ 0) )  -- (  ∷ 3 ∷   ∷ 4 ∷ 1 ∷ []) ∷ 
       ∷  plist ( abc (n≤ 1) (n≤ 1) )  -- (  ∷ 3 ∷   ∷ 4 ∷ 1 ∷ []) ∷
       ∷  plist ( abc (n≤ 1) (n≤ 2) )  -- (3 ∷   ∷   ∷ 4 ∷ 0 ∷ []) ∷   
       ∷  plist ( abc (n≤ 1) (n≤ 3) )  -- (1 ∷ 4 ∷   ∷   ∷ 0 ∷ []) ∷  
       ∷  plist ( abc (n≤ 1) (n≤ 4) )  -- (1 ∷ 3 ∷   ∷ 0 ∷   ∷ []) ∷ 
       ∷  plist ( abc (n≤ 2) (n≤ 0) )  -- (  ∷ 2 ∷ 4 ∷   ∷ 1 ∷ []) ∷
       ∷  plist ( abc (n≤ 2) (n≤ 1) )  -- (  ∷ 2 ∷ 4 ∷   ∷ 1 ∷ []) ∷   
       ∷  plist ( abc (n≤ 2) (n≤ 2) )  -- (2 ∷   ∷ 4 ∷   ∷ 0 ∷ []) ∷  
       ∷  plist ( abc (n≤ 2) (n≤ 3) )  -- (1 ∷ 4 ∷   ∷   ∷ 0 ∷ []) ∷ 
       ∷  plist ( abc (n≤ 2) (n≤ 4) )  -- (1 ∷ 2 ∷ 0 ∷   ∷   ∷ []) ∷
       ∷  plist ( abc (n≤ 3) (n≤ 0) )  -- (  ∷ 2 ∷ 3 ∷ 1 ∷   ∷ []) ∷   
       ∷  plist ( abc (n≤ 3) (n≤ 1) )  -- (  ∷ 2 ∷ 3 ∷ 1 ∷   ∷ []) ∷  
       ∷  plist ( abc (n≤ 3) (n≤ 2) )  -- (2 ∷   ∷ 3 ∷ 0 ∷   ∷ []) ∷ 
       ∷  plist ( abc (n≤ 3) (n≤ 3) )  -- (1 ∷ 3 ∷   ∷ 0 ∷   ∷ []) ∷
       ∷  plist ( abc (n≤ 3) (n≤ 4) )  -- (1 ∷ 2 ∷ 0 ∷   ∷   ∷ []) ∷ []
       ∷ []

     td = plist ( dba (n≤ 0) (n≤ 0) ) -- (  ∷   ∷ 4 ∷ 2 ∷ 3 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 0) (n≤ 1) ) -- (  ∷   ∷ 4 ∷ 2 ∷ 3 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 0) (n≤ 2) ) -- (4 ∷   ∷   ∷ 0 ∷ 3 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 0) (n≤ 3) ) -- (4 ∷   ∷ 0 ∷   ∷ 2 ∷ []) ∷                                
       ∷  plist ( dba (n≤ 0) (n≤ 4) ) -- (3 ∷   ∷ 0 ∷ 2 ∷   ∷ []) ∷                               
       ∷  plist ( dba (n≤ 1) (n≤ 0) ) -- (  ∷ 4 ∷   ∷ 1 ∷ 3 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 1) (n≤ 1) ) -- (  ∷ 4 ∷   ∷ 1 ∷ 3 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 1) (n≤ 2) ) -- (4 ∷   ∷   ∷ 0 ∷ 3 ∷ []) ∷                                
       ∷  plist ( dba (n≤ 1) (n≤ 3) ) -- (4 ∷ 0 ∷   ∷   ∷ 1 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 1) (n≤ 4) ) -- (3 ∷ 0 ∷   ∷ 1 ∷   ∷ []) ∷                               
       ∷  plist ( dba (n≤ 2) (n≤ 0) ) -- (  ∷ 4 ∷ 1 ∷   ∷ 2 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 2) (n≤ 1) ) -- (  ∷ 4 ∷ 1 ∷   ∷ 2 ∷ []) ∷                                
       ∷  plist ( dba (n≤ 2) (n≤ 2) ) -- (4 ∷   ∷ 0 ∷   ∷ 2 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 2) (n≤ 3) ) -- (4 ∷ 0 ∷   ∷   ∷ 1 ∷ []) ∷                               
       ∷  plist ( dba (n≤ 2) (n≤ 4) ) -- (2 ∷ 0 ∷ 1 ∷   ∷   ∷ []) ∷                               
       ∷  plist ( dba (n≤ 3) (n≤ 0) ) -- (  ∷ 3 ∷ 1 ∷ 2 ∷   ∷ []) ∷                                
       ∷  plist ( dba (n≤ 3) (n≤ 1) ) -- (  ∷ 3 ∷ 1 ∷ 2 ∷   ∷ []) ∷                               
       ∷  plist ( dba (n≤ 3) (n≤ 2) ) -- (3 ∷   ∷ 0 ∷ 2 ∷   ∷ []) ∷                               
       ∷  plist ( dba (n≤ 3) (n≤ 3) ) -- (3 ∷ 0 ∷   ∷ 1 ∷   ∷ []) ∷ 
       ∷  plist ( dba (n≤ 3) (n≤ 4) ) -- (2 ∷ 0 ∷ 1 ∷   ∷   ∷ []) ∷ [] 
       ∷ []


     --- 1 ∷ 2 ∷ 0 ∷   ∷   ∷ []      abc    --  abc (n≤ 3) (n≤ 4)
     --- 3 ∷ 0 ∷   ∷ 1 ∷   ∷ []      dba
     dba99 = ins2 (3rot ∘ₚ 3rot) (n≤ 1) (n≤ 2)
     --- 4 ∷   ∷ 0 ∷   ∷ 2 ∷ []      aec
     aec99 = ins2 (pinv 3rot) (n≤ 1) (n≤ 4)
     tt1 = plist dba99 ∷ plist (pinv dba99) ∷ []
     tt2 = plist aec99 ∷ plist (pinv aec99) ∷ []
     tt5 = plist  [ dba99 , aec99  ]  -- =p=  abc  

     triple : {i j : ℕ } → (i<3 : i ≤ 3) (j<4 : j ≤ 4) → Triple i<3 j<4
     triple z≤n z≤n = record { dba0<3 = {!!} ; dba1<4 = {!!} ; aec0<3 = {!!} ; aec1<4 = {!!} ; abc= = {!!} }
     triple z≤n (s≤s z≤n) = {!!}
     triple z≤n (s≤s (s≤s z≤n)) = {!!}
     triple z≤n (s≤s (s≤s (s≤s z≤n))) = {!!}
     triple z≤n (s≤s (s≤s (s≤s (s≤s z≤n)))) = {!!}
     triple (s≤s z≤n) z≤n = {!!}
     triple (s≤s z≤n) (s≤s z≤n) = {!!}
     triple (s≤s z≤n) (s≤s (s≤s z≤n)) = {!!}
     triple (s≤s z≤n) (s≤s (s≤s (s≤s z≤n))) = {!!}
     triple (s≤s z≤n) (s≤s (s≤s (s≤s (s≤s z≤n)))) = {!!}
     triple (s≤s (s≤s z≤n)) z≤n = {!!}
     triple (s≤s (s≤s z≤n)) (s≤s z≤n) = {!!}
     triple (s≤s (s≤s z≤n)) (s≤s (s≤s z≤n)) = {!!}
     triple (s≤s (s≤s z≤n)) (s≤s (s≤s (s≤s z≤n))) = {!!}
     triple (s≤s (s≤s z≤n)) (s≤s (s≤s (s≤s (s≤s z≤n)))) = {!!}
     triple (s≤s (s≤s (s≤s z≤n))) z≤n = {!!}
     triple (s≤s (s≤s (s≤s z≤n))) (s≤s z≤n) = {!!}
     triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s z≤n)) = {!!}
     triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s (s≤s z≤n))) = {!!}
     triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s (s≤s (s≤s z≤n)))) = 
        record { dba0<3 = # 1 ; dba1<4 = # 4 ; aec0<3 = # 0 ; aec1<4 = # 3 ; abc= = pleq _ _ refl }  


     dervie-any-3rot : (n : ℕ ) → {i j : ℕ }  → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → deriving n (abc i<3 j<4 )
     dervie-any-3rot 0 i<3 j<4 = lift tt
     dervie-any-3rot (suc i) i<3 j<4 =  {!!}
     --    ccong {deriving i} ( abc= (triple  i<3 j<4 ) ) (
     --    comm {deriving i} {dba} {aec} 
     --         ( dervie-any-3rot i (fin<n {3} {dba0<3 tc}) (fin<n {4} {dba1<4 tc}) ) 
     --         ( dervie-any-3rot i (fin<n {3} {aec0<3 tc}) (fin<n {4} {aec1<4 tc}) )) where
     --             tc : Triple i<3 j<4
     --             tc = triple i<3 j<4
     --             dba : Permutation 5 5
     --             dba = abc (fin<n {3} {dba0<3 tc}) (fin<n {4} {dba1<4   tc})
     --             aec : Permutation 5 5
     --             aec = abc (fin<n {3} {aec0<3 tc}) (fin<n {4} {aec1<4   tc})

     open _=p=_
     counter-example :  ¬ (abc 0<3 0<4  =p= pid )
     counter-example = {!!} -- p with peq p (# 1)
     -- ...  | ()