annotate src/sym5n.agda @ 290:c870095531ef

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 29 Jan 2023 21:05:55 +0900
parents 6d1619d9f880
children f59a9f4cfd78
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
184
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 182
diff changeset
3 module sym5n 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
251
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
25 -- open import IO
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
26 open import Data.String hiding (toList)
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
27 open import Data.Unit
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
28 open import Agda.Builtin.String
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
29
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
30 sym5solvable : (n : ℕ) → String -- ¬ solvable (Symmetric 5)
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
31 sym5solvable n = FListtoStr (CommFListN 5 n) where
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
70
32004c9a70b1 sym2 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 69
diff changeset
33 open import Data.List using ( List ; [] ; _∷_ )
184
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 182
diff changeset
34 open Solvable (Symmetric 5)
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
35
153
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 127
diff changeset
36 open import FLutil
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 127
diff changeset
37 open import Data.List.Fresh hiding ([_])
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 127
diff changeset
38 open import Relation.Nary using (⌊_⌋)
d880595eae30 FLinsert-mb
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 127
diff changeset
39
184
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 182
diff changeset
40 p0id : FL→perm (zero :: zero :: zero :: (zero :: (zero :: f0))) =p= pid
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
41 p0id = pleq _ _ refl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
42
182
eb94265d2a39 Any based proof computation done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 162
diff changeset
43 open import Data.List.Fresh.Relation.Unary.Any
eb94265d2a39 Any based proof computation done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 162
diff changeset
44 open import FLComm
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
45
251
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
46
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
47 stage4FList = CommFListN 5 0
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
48 stage6FList = CommFListN 5 3
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
49
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
50 -- stage5FList = {!!}
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
51 -- s2=s3 : CommFListN 5 2 ≡ CommFListN 5 3
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
52 -- s2=s3 = refl
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
53
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
54 FLtoStr : {n : ℕ} → (x : FL n) → String
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
55 FLtoStr f0 = "f0"
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
56 FLtoStr (x :: y) = primStringAppend ( primStringAppend (primShowNat (toℕ x)) " :: " ) (FLtoStr y)
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
57
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
58 FListtoStr : {n : ℕ} → (x : FList n) → String
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
59 FListtoStr [] = ""
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
60 FListtoStr (cons a x x₁) = primStringAppend (FLtoStr a) (primStringAppend "\n" (FListtoStr x))
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
61
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
62 open import Codata.Musical.Notation
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
63 open import Data.Maybe hiding (_>>=_)
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
64 open import Data.List
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
65 open import Data.Char
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
66 open import IO.Primitive
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
67 open import Codata.Musical.Costring
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
69 postulate
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
70 getArgs : IO (List (List Char))
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
71 {-# FOREIGN GHC import qualified System.Environment #-}
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
72 {-# COMPILE GHC getArgs = System.Environment.getArgs #-}
251
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
73
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
74 charToDigit : Char → Maybe ℕ
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
75 charToDigit '0' = just ( 0)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
76 charToDigit '1' = just ( 1)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
77 charToDigit '2' = just ( 2)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
78 charToDigit '3' = just ( 3)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
79 charToDigit '4' = just ( 4)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
80 charToDigit '5' = just ( 5)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
81 charToDigit '6' = just ( 6)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
82 charToDigit '7' = just ( 7)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
83 charToDigit '8' = just ( 8)
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
84 charToDigit '9' = just ( 9)
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
85 charToDigit _ = nothing
251
d782dd481a26 compile
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 184
diff changeset
86
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
87 getNumArg1 : (List (List Char)) → ℕ
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
88 getNumArg1 [] = 0
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
89 getNumArg1 ([] ∷ y) = 0
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
90 getNumArg1 ((x ∷ _) ∷ y) with charToDigit x
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
91 ... | just n = n
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
92 ... | nothing = 0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
93
254
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
94
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
95 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
96 -- CommFListN 5 x is too slow use compiler
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
97 -- agda --compile sym5n.agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
98 --
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
99
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
100 main : IO ⊤
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
101 main = getArgs >>= (λ x → putStrLn $ toCostring $ sym5solvable $ getNumArg1 x )
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 251
diff changeset
102
253
b46a3a3f45af getArgs worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 252
diff changeset
103