13 lines
266 B
Coq
13 lines
266 B
Coq
Require Import Utf8.
|
|
|
|
Section FOLD.
|
|
Context {A: Type} (f: A → A) (a: A).
|
|
Fixpoint fold (n: nat) : A :=
|
|
match n with
|
|
| O => a
|
|
| S n' => f (fold n')
|
|
end.
|
|
End FOLD.
|
|
|
|
Definition ackermann : nat → nat → nat :=
|
|
fold (λ g, fold g (g (S O))) S.
|