(** ** Fixpoints *)

(* Specifications: *)
Lemma iter_fix T (f : T -> T) x n : f x = x -> iter n f x = x.
Definition set_fix := iterF n.
Lemma set_fixK : F set_fix = set_fix.
Hint Resolve set_fixK.
Lemma set_fixKn k : iter k F set_fix = set_fix.
Lemma fix_order_proof x : x \in set_fix -> exists n, x \in iterF n.
Lemma in_iter_fix_orderE (x : T) :
(x \in iterF (fix_order x)) = (x \in set_fix).
Lemma fix_order_gt0 (x : T) : (fix_order x > 0) = (x \in set_fix).
Lemma fix_order_eq0 (x : T) : (fix_order x == 0) = (x \notin set_fix).
Lemma in_iter (x : T) k : x \in set_fix -> fix_order x <= k -> x \in iterF k.
Variable (F : {fset T} -> {fset T}).