(* ALL DARTS IN AN f-ORBIT ARE DISTINCT: *)  

Definition diff_orb(m:fmap)(z:dart):Prop:=
 let nr:= Iter_upb_aux m z (fmap_to_set m) in
  (diff_int m z 0 (nr - 1))%nat.

Lemma period_uniform : forall(m:fmap)(z:dart)(i:nat), inv_hmap m -> exd m z -> Iter_upb m z = Iter_upb m (Iter (f m) i z).