Add more homework solutions.

This commit is contained in:
2021-04-17 02:44:06 -07:00
parent 75930c41e9
commit 3dbd9f8d00
7 changed files with 228 additions and 0 deletions

22
HomeworkTwelve.idr Normal file
View File

@@ -0,0 +1,22 @@
module HomeworkTwelve
%default total
data Op = Push Nat | Pop | Add
Stack : Type
Stack = List Nat
data Step : Stack -> Op -> Stack -> Type where
SPush : Step xs (Push n) (n::xs)
SPop : Step (n::xs) Pop xs
SAdd : Step (n1::n2::xs) Add ((n1+n2)::xs)
Ops : Type
Ops = List Op
data Steps : Stack -> Ops -> Stack -> Type where
SEmpty : Steps xs [] xs
SSeq : Step xs o ys -> Steps ys os zs -> Steps xs (o::os) zs
stepsEx : Steps [] [Push 3, Push 5, Add] [8]
stepsEx = SSeq SPush (SSeq SPush (SSeq SAdd SEmpty))