(* 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.

Lemma expo1_ex_j: forall(m:fmap)(z t:dart), inv_hmap m -> exd m z -> let p:= Iter_upb m z in (ex_j m z t (p - 1)%nat <-> expo1 m z t).