let fn add(x,y N) N
know:
forall x N: add(x, 0) = x
forall x,y N: add(x, y) = add(x+1, y-1)
algo add(x, y):
if y = 0:
return 0
if y > 0:
return add(x+1, y-1)
eval(add(3, 2)) # should be equivalent to add(3, 2) = add(4, 1) = add(5, 0) = 5
add(3, 2) = 5
algoorevaldoesn't work when it receives more than two parameters. For example: