End BindsProperties.
Hint Rewrite binds_nil binds_one_3 binds_app : rewr_binds.
Hint Rewrite binds_nil binds_one_3 : rewr_binds_uniq.
(* ********************************************************************* *)
(** ** Additional lemmas and tactics for working with [binds] *)
Section MoreBindsProperties.
Variables A B : Set.
Variables x y : atom.
Variables a b : A.
Variables E F G : list (asn A B).

(* Specifications: *)
Lemma binds_dom_contradiction: forall (E : list (asn A B)),
binds x a E ->
x `notin` dom E ->
False.
Lemma binds_app_uniq :
uniq (E ++ F) ->
(binds x a (E ++ F) <->
(binds x a E /\ x `notin` dom F) \/
(binds x a F /\ x `notin` dom E)).