(*==========================================================  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.
(* SIGNATURE FOR BIJECTIONS : *)
Module Type Sigf.
(* f : bijection dans une hmap m, avec domaine de definition (exd m) : dart -> Prop *)
Parameter f : fmap -> dart -> dart.
Parameter f_1 : fmap -> dart -> dart.

Axiom f_f_1 : forall (m:fmap )(z:dart),
inv_hmap m -> exd m z -> f m (f_1 m z) = z.