Module FuncDict (E: ELEM).
Definition T := E.T -> bool.
Definition empty (e' : E.T) := false.
Definition find (e' : E.T) (s : T) := s e'.
Definition add (e : E.T) (s : T) (e' : E.T) :=
ifte (E.eq_dec e e') true (find e' s).
auto.
Qed.
intros.
unfold find, add.
elim (Reflexivity_provable _ _ (E.eq_dec e e)).
intros.
rewrite H.
auto.
Qed.

Lemma find_add_false :
forall (s : T) (e e' : E.T), e <> e' -> find e (add e' s) = find e s.