(*==========================================================

   PATHS AND ORBITS OF ANY PERMUTATION f ON A hmap

	 WITH NOETHERIAN SET INDUCTION

         MODULE Type Sigf, MODULE Mf:

==========================================================*)

(* ITERATOR FOR A FUNCTION g: *)

Fixpoint Iter(g:dart->dart)(n:nat)(z:dart){struct n}:dart:=
  match n with
    0%nat => z
  | S n0 => g (Iter g n0 z)
 end.Definition f:=M.f.Definition f_1:=M.f_1.Definition exd_f:=M.exd_f.Definition exd_f_1:=M.exd_f_1.Definition bij_f:=M.bij_f.Definition bij_f_1:=M.bij_f_1.Definition f_1_f:=M.f_1_f.Definition f_f_1:=M.f_f_1.

(* Specifications: *)
Lemma exd_Iter_f:forall(m:fmap)(n:nat)(z:dart), inv_hmap m -> (exd m z <-> exd m (Iter (f m) n z)).
Lemma exd_Iter_f_1:forall(m:fmap)(n:nat)(z:dart), inv_hmap m -> (exd m z <-> exd m (Iter (f_1 m) n z)).
Theorem Iter_rem_F : forall (m:fmap)(z:dart), forall sx: set, (forall sy: set, Rs sy sx -> set) -> set.