is_natural(z). is_natural(s($0)) :- is_natural($0). add($0, z, $0) :- is_natural($0). add($0, s($1), s($2)) :- add($0, $1, $2). mul($0, z, z) :- is_natural($0). mul($0, s($1), $2) :- mul($0,$1,$3), add($0,$3,$2).