annotate final_pre/src/AgdaStackTest.agda @ 7:0e8b9646d43f

add final_pre
author e155702
date Sun, 17 Feb 2019 05:39:59 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
1 open import Level renaming (suc to succ ; zero to Zero )
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
2 module AgdaStackTest where
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
3
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
4 open import stack
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
5
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
6 open import Relation.Binary.PropositionalEquality
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
7 open import Relation.Binary.Core
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
8 open import Data.Nat
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
9 open import Function
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
10
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
11
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
12 open SingleLinkedStack
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
13 open Stack
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
14
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
15
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
16 -- after push 1 and 2, pop2 get 1 and 2
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
17
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
18 testStack02 : {m : Level } -> ( Stack ℕ (SingleLinkedStack ℕ) -> Bool {m} ) -> Bool {m}
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
19 testStack02 cs = pushStack createSingleLinkedStack 1 (\s -> pushStack s 2 cs)
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
20
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
21
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
22 testStack031 : (d1 d2 : ℕ ) -> Bool {Zero}
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
23 testStack031 2 1 = True
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
24 testStack031 _ _ = False
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
25
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
26 testStack032 : (d1 d2 : Maybe ℕ) -> Bool {Zero}
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
27 testStack032 (Just d1) (Just d2) = testStack031 d1 d2
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
28 testStack032 _ _ = False
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
29
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
30 testStack03 : {m : Level } -> Stack ℕ (SingleLinkedStack ℕ) -> ((Maybe ℕ) -> (Maybe ℕ) -> Bool {m} ) -> Bool {m}
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
31 testStack03 s cs = pop2Stack s (\s d1 d2 -> cs d1 d2 )
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
32
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
33 testStack04 : Bool
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
34 testStack04 = testStack02 (\s -> testStack03 s testStack032)
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
35
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
36 testStack05 : testStack04 ≡ True
0e8b9646d43f add final_pre
e155702
parents:
diff changeset
37 testStack05 = refl