(* THERE EXISTS j <= n S.T. zj = t: INDUCTIVE DEF. *)

Fixpoint ex_j
 (m:fmap)(z t:dart)(n:nat){struct n}:Prop:=
match n with
   0%nat => z = t
 | S n0 => Iter (f m) n z = t \/ ex_j m z t n0
end.

Theorem period_expo : forall(m:fmap)(z t:dart), inv_hmap m -> expo m z t -> Iter_upb m z = Iter_upb m t.