(* A dart exists in a fmap:
CAUTION: (exd m nil) is possible for m <> V *)

Fixpoint exd (m:fmap)(x:dart){struct m} : Prop:=
 match m with
       V => False
    |  I m0 x0 => x=x0 \/ exd m0 x
    |  L m0 _ _ _  => exd m0 x
 end.

(* Specifications: *)
Lemma exd_dec: forall (m:fmap)(x:dart), {exd m x}+{~exd m x}.