Section orbit_in.
Variable S : pred_sort (predPredType T).
Hypothesis f_in : {in S, forall x, f x \in S}.
Hypothesis injf : {in S &, injective f}.

(* Specifications: *)
Lemma iter_in : {in S, forall x i, iter i f x \in S}.
Lemma finv_f_in : {in S, cancel f finv}.
Lemma iter_order_in : {in S, forall x, iter (order x) f x = x}.
Lemma cycle_orbit_in : {in S, forall x, (fcycle f) (orbit x)}.
Lemma fpath_finv_in p x : (x \in S) && (fpath finv x p) =
(last x p \in S) && (fpath f (last x p) (rev (belast x p))).
Lemma fpath_finv_f_in p : {in S, forall x,
fpath finv x p -> fpath f (last x p) (rev (belast x p))}.
Lemma fcard_finv : fcard_mem finv =1 fcard_mem f.
Lemma fclosed1 (a : pred T) : fclosed f a -> forall x, (x \in a) = (f x \in a).
Hypothesis eq_f : f =1 f'.