Open Scope nat_scope.
(* SUMMARY: nr IS THE LOWEST nat > 0 S.T. z^nr = z AND 0 < i < nr -> z^i <> z: OK *)

Theorem period_lub : forall(m:fmap)(z:dart),
inv_hmap m -> exd m z ->
let nr:= Iter_upb m z in
0 < nr /\ Iter (f m) nr z = z /\
forall i:nat, 0 < i < nr -> Iter (f m) i z <> z.