annotate sym3n.agda @ 162:57d475583f74

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 23 Nov 2020 00:48:18 +0900
parents d880595eae30
children eb94265d2a39
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
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
3 module sym3n 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
121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
20 open import Data.Fin.Permutation hiding (_∘ₚ_)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
21
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
22 infixr 200 _∘ₚ_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
23 _∘ₚ_ = Data.Fin.Permutation._∘ₚ_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
24
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
26 sym3solvable : solvable (Symmetric 3)
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
27 solvable.dervied-length sym3solvable = 2
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
28 solvable.end sym3solvable x d = solved1 x d where
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
30 open import Data.List using ( List ; [] ; _∷_ )
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
31
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
32 open Solvable (Symmetric 3)
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
33 open import FLutil
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
34 open import Data.List.Fresh hiding ([_])
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
35 open import Relation.Nary using (⌊_⌋)
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
36
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
37 p0id : FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0))) =p= pid
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
38 p0id = pleq _ _ refl
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
39
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
40 t1 : FList 3 → FList 3
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
41 t1 x = tl2 x x [] where
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
42 tl3 : (FL 3) → ( z : FList 3) → FList 3 → FList 3
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
43 tl3 h [] w = w
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
44 tl3 h (x ∷# z) w = tl3 h z (FLinsert ( perm→FL [ FL→perm h , FL→perm x ] ) w )
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
45 tl2 : ( x z : FList 3) → FList 3 → FList 3
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
46 tl2 [] _ x = x
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
47 tl2 (h ∷# x) z w = tl2 x z (tl3 h z w)
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
48
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
49 stage10 : FList 3
162
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
50 stage10 = {!!} -- t1 (Flist (fmax ))
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
52 p0 = FL→perm ((# 0) :: ((# 0) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
53 p1 = FL→perm ((# 0) :: ((# 1) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
54 p2 = FL→perm ((# 1) :: ((# 0) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
55 p3 = FL→perm ((# 1) :: ((# 1) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
56 p4 = FL→perm ((# 2) :: ((# 0) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
57 p5 = FL→perm ((# 2) :: ((# 1) :: ((# 0 ) :: f0)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
58 t0 = plist p0 ∷ plist p1 ∷ plist p2 ∷ plist p3 ∷ plist p4 ∷ plist p5 ∷ []
88
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
59
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
60 tt4 = plist [ p0 , p0 ] ∷ plist [ p1 , p0 ] ∷ plist [ p2 , p0 ] ∷ plist [ p3 , p0 ] ∷ plist [ p4 , p0 ] ∷ plist [ p5 , p1 ] ∷
125
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
61 plist [ p0 , p1 ] ∷ plist [ p1 , p1 ] ∷ plist [ p2 , p1 ] ∷ plist [ p3 , p1 ] ∷ plist [ p4 , p1 ] ∷ plist [ p5 , p1 ] ∷
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
62 plist [ p0 , p2 ] ∷ plist [ p1 , p2 ] ∷ plist [ p2 , p2 ] ∷ plist [ p3 , p2 ] ∷ plist [ p4 , p2 ] ∷ plist [ p5 , p2 ] ∷
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
63 plist [ p0 , p3 ] ∷ plist [ p1 , p3 ] ∷ plist [ p3 , p3 ] ∷ plist [ p3 , p3 ] ∷ plist [ p4 , p3 ] ∷ plist [ p5 , p3 ] ∷
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
64 plist [ p0 , p4 ] ∷ plist [ p1 , p4 ] ∷ plist [ p3 , p4 ] ∷ plist [ p3 , p4 ] ∷ plist [ p4 , p4 ] ∷ plist [ p5 , p4 ] ∷
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
65 plist [ p0 , p5 ] ∷ plist [ p1 , p5 ] ∷ plist [ p3 , p5 ] ∷ plist [ p3 , p5 ] ∷ plist [ p4 , p4 ] ∷ plist [ p5 , p5 ] ∷
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
66 []
119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
67
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
68 open _=p=_
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
69
119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
70 stage1 : (x : Permutation 3 3) → Set (Level.suc Level.zero)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
71 stage1 x = Commutator (λ x₂ → Lift (Level.suc Level.zero) ⊤) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
72
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
73 open import logic
121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
74
122
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 121
diff changeset
75 pFL : ( g : Permutation 3 3) → { x : FL 3 } → perm→FL g ≡ x → g =p= FL→perm x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 121
diff changeset
76 pFL g {x} refl = ptrans (psym (FL←iso g)) ( FL-inject refl )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 121
diff changeset
77
121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
78 open ≡-Reasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
79
123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
80 -- st01 : ( x y : Permutation 3 3) → x =p= p3 → y =p= p3 → x ∘ₚ y =p= p4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
81 -- st01 x y s t = record { peq = λ q → ( begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
82 -- (x ∘ₚ y) ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
83 -- ≡⟨ peq ( presp s t ) q ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
84 -- ( p3 ∘ₚ p3 ) ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
85 -- ≡⟨ peq p33=4 q ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
86 -- p4 ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
87 -- ∎ ) }
121
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 120
diff changeset
88
125
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
89 st00 = perm→FL [ FL→perm ((suc zero) :: (suc zero :: (zero :: f0 ))) , FL→perm ((suc (suc zero)) :: (suc zero) :: (zero :: f0)) ]
11ccc9fe91c3 sym3 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 124
diff changeset
90
119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
91
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
92 stage12 : (x : Permutation 3 3) → stage1 x → ( x =p= pid ) ∨ ( x =p= p3 ) ∨ ( x =p= p4 )
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
93 stage12 = {!!}
123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
94
119
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 111
diff changeset
95
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
96 solved1 : (x : Permutation 3 3) → Commutator (λ x₁ → Commutator (λ x₂ → Lift (Level.suc Level.zero) ⊤) x₁) x → x =p= pid
123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
97 solved1 _ uni = prefl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
98 solved1 x (gen {f} {g} d d₁) with solved1 f d | solved1 g d₁
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
99 ... | record { peq = f=e } | record { peq = g=e } = record { peq = λ q → genlem q } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
100 genlem : ( q : Fin 3 ) → g ⟨$⟩ʳ ( f ⟨$⟩ʳ q ) ≡ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
101 genlem q = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
102 g ⟨$⟩ʳ ( f ⟨$⟩ʳ q )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
103 ≡⟨ g=e ( f ⟨$⟩ʳ q ) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
104 f ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
105 ≡⟨ f=e q ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
106 q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
107
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
108 solved1 x (ccong {f} {g} (record {peq = f=g}) d) with solved1 f d
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
109 ... | record { peq = f=e } = record { peq = λ q → cc q } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
110 cc : ( q : Fin 3 ) → x ⟨$⟩ʳ q ≡ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
111 cc q = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
112 x ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
113 ≡⟨ sym (f=g q) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
114 f ⟨$⟩ʳ q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
115 ≡⟨ f=e q ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
116 q
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
117
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 125
diff changeset
118 solved1 _ (comm {g} {h} x y) = {!!}
123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 122
diff changeset
119