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.
Definition FP (x : X) : Prop := f x = x.

Lemma it_fp (sigma : X -> nat) x :
(forall n, FP (it n x) \/ sigma (it n x) > sigma (it (S n) x)) ->
FP (it (sigma x) x).