(* A dart exists in an 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 _ _ => x0 = x \/ exd m0 x
    |  L m0 _ _ _  => exd m0 x
 end.

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