>>  "foo xs 0 = True"
>> | "foo  (Suc _) = False"
>> | "foo (x # xs) (Suc n) = foo xs n"
> away patterns involving Suc, so that you don't have to do it yourself.
> each rule with a "Suc n" pattern, there is a matching rule with a "0"
> pattern in its place.
>  "foo  0 = True"
> | "foo (x # xs) 0 = True"
> of Code_Nat.thy, where I have modified the code preprocessor.
| "double n = n + n"