summaryrefslogtreecommitdiff
path: root/program/exp.prim
blob: 3c07ec13a442af8f783347db00bf6b20f6fbdb30 (plain)
1
2
3
let add (x : Nat) (y : Nat) : Nat = foldcase x by {Z u => y; S k => ~(S k)} in
let mul (x : Nat) (y : Nat) : Nat = foldcase x by {Z u => 0; S k => add y k} in
\x, y => foldcase y by {Z u => 1; S k => mul x k}