annotate sym4.agda @ 135:4e2d272b4bcc

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Sep 2020 12:29:58 +0900
parents 43d00372bdc9
children d880595eae30
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Level hiding ( suc ; zero )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Algebra
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
3 module sym4 where
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import Symmetric
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import Data.Unit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import Function
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 open import Data.Nat hiding (_⊔_) -- using (ℕ; suc; zero)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 open import Data.Product
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 open import Gutil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 open import Putil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 open import Solvable using (solvable)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open import Relation.Binary.PropositionalEquality hiding ( [_] )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 open import Data.Fin
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
20 open import Data.Fin.Permutation hiding (_∘ₚ_)
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
22 infixr 200 _∘ₚ_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
23 _∘ₚ_ = Data.Fin.Permutation._∘ₚ_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
25 sym4solvable : solvable (Symmetric 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
26 solvable.dervied-length sym4solvable = 3
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
27 solvable.end sym4solvable x d = solved1 x {!!} where
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
29 open import Data.List using ( List ; [] ; _∷_ )
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
30
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
31 open Solvable (Symmetric 4)
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 -- open Group (Symmetric 2) using (_⁻¹)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
34 open _=p=_
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
35
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
36 -- Klien
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
37 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
38 -- 1 (1,2),(3,4) (1,3),(2,4) (1,4),(2,3)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
39 -- 0 ∷ 1 ∷ 2 ∷ 3 ∷ [] , 1 ∷ 0 ∷ 3 ∷ 2 ∷ [] , 2 ∷ 3 ∷ 0 ∷ 1 ∷ [] , 3 ∷ 2 ∷ 1 ∷ 0 ∷ [] ,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
40
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
41
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
42 data Klein : (x : Permutation 4 4 ) → Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
43 kid : Klein pid
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
44 ka : Klein (pswap (pswap pid))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
45 kb : Klein (pid {4} ∘ₚ pins (n≤ 3) ∘ₚ pins (n≤ 3 ) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
46 kc : Klein (pins (n≤ 3) ∘ₚ pins (n≤ 2) ∘ₚ pswap (pid {2}))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
47
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
48 a0 = pid {4}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
49 a1 = pswap (pswap (pid {0}))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
50 a2 = pid {4} ∘ₚ pins (n≤ 3) ∘ₚ pins (n≤ 3 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
51 a3 = pins (n≤ 3) ∘ₚ pins (n≤ 2) ∘ₚ pswap (pid {2})
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
53 -- 1 0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
54 -- 2 1 0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
55 -- 3 2 1 0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
56
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
57 k1 : { x : Permutation 4 4 } → Klein x → List ℕ
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
58 k1 {x} kid = plist x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
59 k1 {x} ka = plist x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
60 k1 {x} kb = plist x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
61 k1 {x} kc = plist x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
62
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
63 k2 = k1 kid ∷ k1 ka ∷ k1 kb ∷ k1 kc ∷ []
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
64 k3 = plist (a1 ∘ₚ a2 ) ∷ plist (a1 ∘ₚ a3) ∷ plist (a2 ∘ₚ a1 ) ∷ []
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
65
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
66 p0id : FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0))) =p= pid
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
67 p0id = pleq _ _ refl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
68
127
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
69 -- stage 1 (A4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
70 p0 = (zero :: zero :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
71 p1 = (zero :: suc zero :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
72 p2 = (zero :: suc (suc zero) :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
73 p3 = (suc zero :: zero :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
74 p4 = (suc zero :: suc zero :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
75 p5 = (suc zero :: suc (suc zero) :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
76 p6 = (suc (suc zero) :: zero :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
77 p7 = (suc (suc zero) :: suc zero :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
78 p8 = (suc (suc zero) :: suc (suc zero) :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
79 p9 = (suc (suc (suc zero)) :: zero :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
80 pa = (suc (suc (suc zero)) :: suc zero :: zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
81 pb = (suc (suc (suc zero)) :: suc (suc zero) :: suc zero :: zero :: f0 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
82
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
83 t0 = plist (FL→perm p0 ) ∷ plist (FL→perm p1 ) ∷ plist (FL→perm p2 ) ∷ plist (FL→perm p3 ) ∷ plist (FL→perm p4 ) ∷ plist (FL→perm p5 ) ∷
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
84 plist (FL→perm p6 ) ∷ plist (FL→perm p7 ) ∷ plist (FL→perm p8 ) ∷ plist (FL→perm p9 ) ∷ plist (FL→perm pa ) ∷ plist (FL→perm pb ) ∷ []
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
85
127
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
86 t1 : List (FL 4) → List (FL 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
87 t1 x = tl2 x x [] where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
88 tl3 : (FL 4) → ( z : List (FL 4)) → List (FL 4) → List (FL 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
89 tl3 h [] w = w
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
90 tl3 h (x ∷ z) w = tl3 h z (( perm→FL [ FL→perm h , FL→perm x ] ) ∷ w )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
91 tl2 : ( x z : List (FL 4)) → List (FL 4) → List (FL 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
92 tl2 [] _ x = x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
93 tl2 (h ∷ x) z w = tl2 x z (tl3 h z w)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
94
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
95 stage1 : List (FL 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
96 stage1 = t1 ( ∀-FL 3 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
97
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
98 -- stage2 ( Kline )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
99 -- k0 p0 zero :: zero :: zero :: zero :: f0 ∷ (0 ∷ 1 ∷ 2 ∷ 3 ∷ []) ∷
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
100 -- k1 p3 suc zero :: zero :: suc zero :: zero :: f0 ∷ (1 ∷ 0 ∷ 3 ∷ 2 ∷ []) ∷
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
101 -- k2 p8 suc (suc zero) :: suc (suc zero) :: zero :: zero :: f0 ∷ (2 ∷ 3 ∷ 0 ∷ 1 ∷ [])
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
102 -- k3 pb suc (suc (suc zero)) :: suc (suc zero) :: suc zero :: zero :: f0 ∷ (3 ∷ 2 ∷ 1 ∷ 0 ∷ [])
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
103
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
104 tb = plist ( FL→perm p0) ∷ plist ( FL→perm p3) ∷ plist ( FL→perm p8) ∷ plist ( FL→perm pb) ∷ []
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
105
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
106 stage2 : List (FL 4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
107 stage2 = t1 ( p0 ∷ p1 ∷ p2 ∷ p3 ∷ p4 ∷ p5 ∷ p6 ∷ p7 ∷ p8 ∷ p9 ∷ pa ∷ pb ∷ [] )
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
108
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
109 solved1 : (x : Permutation 4 4) → Commutator (λ x₁ → Commutator (λ x₂ → Lift (Level.suc Level.zero) ⊤) x₁) x → x =p= pid
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
110 solved1 = {!!}