let rec pre = function
n -> if is_zero (n)
then failwith ("pre : requires a non-zero natural number as its argument")
else
if is_one (n)
then zero ()
else if is_zero (prepre (n))
then one ()
else sucsuc (pre (prepre (n)))