annotate sym5.agda @ 102:00a711f99096

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 01 Sep 2020 12:11:11 +0900
parents c68956f6c3ad
children d3da6e2c0d90
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
73
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
3 module sym5 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
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
6 open import Data.Unit using (⊤ ; tt )
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_)
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
8 open import Function hiding (flip)
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 open import Data.Nat hiding (_⊔_) -- using (ℕ; suc; zero)
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
10 open import Data.Nat.Properties
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 open import Data.Product
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 open import Gutil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 open import Putil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open import Solvable using (solvable)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 open import Relation.Binary.PropositionalEquality hiding ( [_] )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
20 open import Data.Fin hiding (_<_ ; _≤_ ; lift )
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 open import Data.Fin.Permutation
73
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
22 open import Data.List hiding ( [_] )
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
23 open import nat
77
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 76
diff changeset
24 open import fin
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
25 open import logic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
26
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
27 open _∧_
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 ¬sym5solvable : ¬ ( solvable (Symmetric 5) )
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
30 ¬sym5solvable sol = counter-example (end5 (abc 0<3 0<4 ) (proj1 (dervie-any-3rot (dervied-length sol) 0<3 0<4 ) )) where
73
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
31
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
32 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
33 -- dba 1320 d → b → a → d
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
34 -- (dba)⁻¹ 3021 a → b → d → a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
35 -- aec 21430
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
36 -- (aec)⁻¹ 41032
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
37 -- (abd)(cea)(dba)(aec)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
38 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
40 open solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
41 open Solvable (Symmetric 5)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
42 end5 : (x : Permutation 5 5) → deriving (dervied-length sol) x → x =p= pid
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
43 end5 x der = end sol x der
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 70
diff changeset
44
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
45 0<4 : 0 < 4
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
46 0<4 = s≤s z≤n
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
47
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
48 0<3 : 0 < 3
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
49 0<3 = s≤s z≤n
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
50
79
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
51 --- 1 ∷ 2 ∷ 0 ∷ [] abc
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
52 3rot : Permutation 3 3
79
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
53 3rot = pid {3} ∘ₚ pins (n≤ 2)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
54
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
55 save2 : {i j : ℕ } → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation 5 5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
56 save2 i<3 j<4 = flip (pins (s≤s i<3)) ∘ₚ flip (pins j<4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
57
79
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
58 ins2 : {i j : ℕ } → Permutation 3 3 → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation 5 5
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
59 ins2 abc i<3 j<4 = (save2 i<3 j<4 ∘ₚ (pprep (pprep abc))) ∘ₚ flip (save2 i<3 j<4 )
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
60
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 74
diff changeset
61 abc : {i j : ℕ } → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation 5 5
79
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
62 abc i<3 j<4 = ins2 3rot i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
63
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
64 dba : {i j : ℕ } → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation 5 5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
65 dba i<3 j<4 = ins2 (3rot ∘ₚ 3rot) i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
66 aec : {i j : ℕ } → (i ≤ 3 ) → ( j ≤ 4 ) → Permutation 5 5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
67 aec i<3 j<4 = ins2 (pinv 3rot) i<3 j<4
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
68
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
69 import Relation.Binary.Reasoning.Setoid as EqReasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
70 abc→dba : {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → (abc i<3 j<4 ∘ₚ abc i<3 j<4 ) =p= dba i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
71 abc→dba i<3 j<4 = lemma where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
72 open EqReasoning (Algebra.Group.setoid (Symmetric 5))
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
73 S = Symmetric 5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
74 open Group (Symmetric 5)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
75 postulate lemma : (abc i<3 j<4 ∘ₚ abc i<3 j<4 ) =p= dba i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
76 -- some kind of functional extentionaly required?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
77 -- lemma = begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
78 -- abc i<3 j<4 ∘ₚ abc i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
79 -- ≈⟨ prefl ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
80 -- ((save2 i<3 j<4 ∘ₚ (pprep (pprep 3rot))) ∘ₚ flip (save2 i<3 j<4 )) ∘ₚ
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
81 -- ((save2 i<3 j<4 ∘ₚ (pprep (pprep 3rot))) ∘ₚ flip (save2 i<3 j<4 ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
82 -- ≈⟨ ∙-flatten (Symmetric 5) (((am (save2 i<3 j<4) o am (pprep (pprep 3rot))) o am (flip (save2 i<3 j<4 ))) o
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
83 -- ((am (save2 i<3 j<4) o am (pprep (pprep 3rot))) o am ( flip (save2 i<3 j<4 )))) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
84 -- save2 i<3 j<4 ∘ₚ (pprep (pprep 3rot) ∘ₚ (flip (save2 i<3 j<4 ) ∘ₚ (
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
85 -- save2 i<3 j<4 ∘ₚ (pprep (pprep 3rot) ∘ₚ (flip (save2 i<3 j<4 ) ∘ₚ pid )))))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
86 -- ≈⟨ ∙-cong prefl ( ∙-cong prefl (grm S (proj₁ inverse _))) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
87 -- save2 i<3 j<4 ∘ₚ (pprep (pprep 3rot) ∘ₚ (pprep (pprep 3rot) ∘ₚ (flip (save2 i<3 j<4 ) ∘ₚ pid )))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
88 -- ≈⟨ ∙-cong prefl (grepl S (pprep-cong prefl ) ) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
89 -- (save2 i<3 j<4 ∘ₚ (pprep (pprep (3rot ∘ₚ 3rot)))) ∘ₚ flip (save2 i<3 j<4 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
90 -- ≈⟨ prefl ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
91 -- dba i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
92 -- ∎
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
93
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
94 postulate -- someday
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
95 dba→aec : {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → (dba i<3 j<4 ∘ₚ dba i<3 j<4 ) =p= aec i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
96 aec→abc : {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → (aec i<3 j<4 ∘ₚ aec i<3 j<4 ) =p= abc i<3 j<4
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
97
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
98 record Triple {i j : ℕ } (i<3 : i ≤ 3) (j<4 : j ≤ 4) (rot : Permutation 3 3) : Set where
77
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 76
diff changeset
99 field
82
fcb9e29d1894 ... pleq worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 81
diff changeset
100 dba0<3 : Fin 4
fcb9e29d1894 ... pleq worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 81
diff changeset
101 dba1<4 : Fin 5
fcb9e29d1894 ... pleq worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 81
diff changeset
102 aec0<3 : Fin 4
fcb9e29d1894 ... pleq worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 81
diff changeset
103 aec1<4 : Fin 5
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
104 abc= : ins2 rot i<3 j<4 =p= [ ins2 (rot ∘ₚ rot) (fin≤n {3} dba0<3) (fin≤n {4} dba1<4) , ins2 (pinv rot) (fin≤n {3} aec0<3) (fin≤n {4} aec1<4) ]
83
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 82
diff changeset
105
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
106 open Triple
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
107 triple : {i j : ℕ } → (i<3 : i ≤ 3) (j<4 : j ≤ 4) → Triple i<3 j<4 3rot
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
108 triple z≤n z≤n = record { dba0<3 = # 0 ; dba1<4 = # 4 ; aec0<3 = # 2 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
109 triple z≤n (s≤s z≤n) = record { dba0<3 = # 0 ; dba1<4 = # 4 ; aec0<3 = # 2 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
110 triple z≤n (s≤s (s≤s z≤n)) = record { dba0<3 = # 1 ; dba1<4 = # 0 ; aec0<3 = # 3 ; aec1<4 = # 2 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
111 triple z≤n (s≤s (s≤s (s≤s z≤n))) = record { dba0<3 = # 1 ; dba1<4 = # 3 ; aec0<3 = # 0 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
112 triple z≤n (s≤s (s≤s (s≤s (s≤s z≤n)))) = record { dba0<3 = # 0 ; dba1<4 = # 0 ; aec0<3 = # 2 ; aec1<4 = # 4 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
113 triple (s≤s z≤n) z≤n = record { dba0<3 = # 0 ; dba1<4 = # 2 ; aec0<3 = # 3 ; aec1<4 = # 1 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
114 triple (s≤s z≤n) (s≤s z≤n) = record { dba0<3 = # 0 ; dba1<4 = # 2 ; aec0<3 = # 3 ; aec1<4 = # 1 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
115 triple (s≤s z≤n) (s≤s (s≤s z≤n)) = record { dba0<3 = # 1 ; dba1<4 = # 0 ; aec0<3 = # 3 ; aec1<4 = # 2 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
116 triple (s≤s z≤n) (s≤s (s≤s (s≤s z≤n))) = record { dba0<3 = # 0 ; dba1<4 = # 3 ; aec0<3 = # 1 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
117 triple (s≤s z≤n) (s≤s (s≤s (s≤s (s≤s z≤n)))) = record { dba0<3 = # 2 ; dba1<4 = # 4 ; aec0<3 = # 0 ; aec1<4 = # 2 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
118 triple (s≤s (s≤s z≤n)) z≤n = record { dba0<3 = # 3 ; dba1<4 = # 0 ; aec0<3 = # 1 ; aec1<4 = # 3 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
119 triple (s≤s (s≤s z≤n)) (s≤s z≤n) = record { dba0<3 = # 3 ; dba1<4 = # 0 ; aec0<3 = # 1 ; aec1<4 = # 3 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
120 triple (s≤s (s≤s z≤n)) (s≤s (s≤s z≤n)) = record { dba0<3 = # 1 ; dba1<4 = # 3 ; aec0<3 = # 0 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
121 triple (s≤s (s≤s z≤n)) (s≤s (s≤s (s≤s z≤n))) = record { dba0<3 = # 0 ; dba1<4 = # 3 ; aec0<3 = # 1 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
122 triple (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 = # 2 ; aec1<4 = # 2 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
123 triple (s≤s (s≤s (s≤s z≤n))) z≤n = record { dba0<3 = # 2 ; dba1<4 = # 4 ; aec0<3 = # 1 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
124 triple (s≤s (s≤s (s≤s z≤n))) (s≤s z≤n) = record { dba0<3 = # 2 ; dba1<4 = # 4 ; aec0<3 = # 1 ; aec1<4 = # 0 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
125 triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s z≤n)) = record { dba0<3 = # 0 ; dba1<4 = # 0 ; aec0<3 = # 2 ; aec1<4 = # 4 ; abc= = pleq _ _ refl }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
126 triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s (s≤s z≤n))) = record { dba0<3 = # 2 ; dba1<4 = # 4 ; aec0<3 = # 0 ; aec1<4 = # 2 ; abc= = pleq _ _ refl }
80
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 79
diff changeset
127 triple (s≤s (s≤s (s≤s z≤n))) (s≤s (s≤s (s≤s (s≤s z≤n)))) =
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
128 record { dba0<3 = # 1 ; dba1<4 = # 4 ; aec0<3 = # 0 ; aec1<4 = # 3 ; abc= = pleq _ _ refl }
79
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 78
diff changeset
129
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
130 dba-triple : {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → Triple i<3 j<4 (3rot ∘ₚ 3rot )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
131 dba-triple = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
132
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
133 aec-triple : {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 ) → Triple i<3 j<4 (pinv 3rot )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
134 aec-triple = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
135
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
136
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
137 dervie-any-3rot : (n : ℕ ) → {i j : ℕ } → (i<3 : i ≤ 3 ) → (j<4 : j ≤ 4 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
138 → deriving n (abc i<3 j<4 ) ∧ deriving n (dba i<3 j<4 ) ∧ deriving n (aec i<3 j<4 )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 83
diff changeset
139 dervie-any-3rot 0 i<3 j<4 = ⟪ lift tt , ⟪ lift tt , lift tt ⟫ ⟫
87
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
140 dervie-any-3rot (suc i) i<3 j<4 = ⟪ d0 , ⟪ d1 , d2 ⟫ ⟫ where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
141 tc : Triple i<3 j<4 3rot
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
142 tc = triple i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
143 abc0 = abc i<3 j<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
144 b<3 = fin≤n {3} (dba0<3 tc)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
145 b<4 = fin≤n {4} (dba1<4 tc)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
146 dba0 = dba b<3 b<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
147 c<3 = fin≤n {3} (aec0<3 tc)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
148 c<4 = fin≤n {4} (aec1<4 tc)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
149 aec0 = aec c<3 c<4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
150 d0 : deriving (suc i) (abc i<3 j<4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
151 d0 =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
152 ccong {deriving i} ( psym (abc= tc )) (
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
153 comm {deriving i} {dba0} {aec0}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
154 (proj1 (proj2 ( dervie-any-3rot i b<3 b<4)))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
155 (proj2 (proj2 ( dervie-any-3rot i c<3 c<4 ))))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
156 d1 : deriving (suc i) (dba i<3 j<4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
157 d1 =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
158 ccong {deriving i} ( psym {!!}) ( -- dba i<3 j<4 =p= [ aec0 , abc0 ] -- dba= : dba b<3 b<4 =p= [ aec0 , abc0 ] is not enough...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
159 comm {deriving i} {aec0} {abc0}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
160 (proj2 (proj2 ( dervie-any-3rot i c<3 c<4 )))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
161 (proj1 ( dervie-any-3rot i i<3 j<4 )))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
162 d2 : deriving (suc i) (aec i<3 j<4)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
163 d2 =
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
164 ccong {deriving i} ( psym {!!}) (
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
165 comm {deriving i} {abc0} {dba0}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
166 (proj1 ( dervie-any-3rot i i<3 j<4 ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 86
diff changeset
167 (proj1 (proj2 ( dervie-any-3rot i b<3 b<4 ) )))
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
168
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
169 open _=p=_
77
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 76
diff changeset
170 counter-example : ¬ (abc 0<3 0<4 =p= pid )
85
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
171 counter-example eq with ←pleq _ _ eq
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 84
diff changeset
172 ... | ()
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
173
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 73
diff changeset
174