Section Iteration.
Variables (X: Type) (f: X -> X).
Fixpoint it (n : nat) (x : X) : X :=
match n with
| 0 => x
| S n' => f (it n' x)
end.

Lemma it_ind (p : X -> Prop) x n :
p x -> (forall z, p z -> p (f z)) -> p (it n x).