annotate final_pre/src/AgdaInterface.agda.replaced @ 7:28f900230c26

add final_pre
author ryokka
date Mon, 19 Feb 2018 23:32:24 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
28f900230c26 add final_pre
ryokka
parents:
diff changeset
1 open import Level renaming (suc to succ ; zero to Zero )
28f900230c26 add final_pre
ryokka
parents:
diff changeset
2 module AgdaInterface where
28f900230c26 add final_pre
ryokka
parents:
diff changeset
3
28f900230c26 add final_pre
ryokka
parents:
diff changeset
4 data Maybe {n : Level } (a : Set n) : Set n where
28f900230c26 add final_pre
ryokka
parents:
diff changeset
5 Nothing : Maybe a
28f900230c26 add final_pre
ryokka
parents:
diff changeset
6 Just : a @$\rightarrow$@ Maybe a
28f900230c26 add final_pre
ryokka
parents:
diff changeset
7
28f900230c26 add final_pre
ryokka
parents:
diff changeset
8 record StackMethods {n m : Level } (a : Set n ) {t : Set m }(stackImpl : Set n ) : Set (m Level.@$\sqcup$@ n) where
28f900230c26 add final_pre
ryokka
parents:
diff changeset
9 field
28f900230c26 add final_pre
ryokka
parents:
diff changeset
10 push : stackImpl @$\rightarrow$@ a @$\rightarrow$@ (stackImpl @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
11 pop : stackImpl @$\rightarrow$@ (stackImpl @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
12 pop2 : stackImpl @$\rightarrow$@ (stackImpl @$\rightarrow$@ Maybe a @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
13 get : stackImpl @$\rightarrow$@ (stackImpl @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
14 get2 : stackImpl @$\rightarrow$@ (stackImpl @$\rightarrow$@ Maybe a @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
15 clear : stackImpl @$\rightarrow$@ (stackImpl @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
16 open StackMethods
28f900230c26 add final_pre
ryokka
parents:
diff changeset
17
28f900230c26 add final_pre
ryokka
parents:
diff changeset
18 record Stack {n m : Level } (a : Set n ) {t : Set m } (si : Set n ) : Set (m Level.@$\sqcup$@ n) where
28f900230c26 add final_pre
ryokka
parents:
diff changeset
19 field
28f900230c26 add final_pre
ryokka
parents:
diff changeset
20 stack : si
28f900230c26 add final_pre
ryokka
parents:
diff changeset
21 stackMethods : StackMethods {n} {m} a {t} si
28f900230c26 add final_pre
ryokka
parents:
diff changeset
22 pushStack : a @$\rightarrow$@ (Stack a si @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
23 pushStack d next = push (stackMethods ) (stack ) d (\s1 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods } ))
28f900230c26 add final_pre
ryokka
parents:
diff changeset
24 popStack : (Stack a si @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
25 popStack next = pop (stackMethods ) (stack ) (\s1 d1 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods }) d1 )
28f900230c26 add final_pre
ryokka
parents:
diff changeset
26 pop2Stack : (Stack a si @$\rightarrow$@ Maybe a @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
27 pop2Stack next = pop2 (stackMethods ) (stack ) (\s1 d1 d2 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods }) d1 d2)
28f900230c26 add final_pre
ryokka
parents:
diff changeset
28 getStack : (Stack a si @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
29 getStack next = get (stackMethods ) (stack ) (\s1 d1 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods }) d1 )
28f900230c26 add final_pre
ryokka
parents:
diff changeset
30 get2Stack : (Stack a si @$\rightarrow$@ Maybe a @$\rightarrow$@ Maybe a @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
31 get2Stack next = get2 (stackMethods ) (stack ) (\s1 d1 d2 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods }) d1 d2)
28f900230c26 add final_pre
ryokka
parents:
diff changeset
32 clearStack : (Stack a si @$\rightarrow$@ t) @$\rightarrow$@ t
28f900230c26 add final_pre
ryokka
parents:
diff changeset
33 clearStack next = clear (stackMethods ) (stack ) (\s1 @$\rightarrow$@ next (record {stack = s1 ; stackMethods = stackMethods } ))
28f900230c26 add final_pre
ryokka
parents:
diff changeset
34
28f900230c26 add final_pre
ryokka
parents:
diff changeset
35 open Stack