End BindsProperties2.
(* *********************************************************************** *)
(** * Hints *)
Hint Resolve
@app_assoc @app_nil_2 @map_app @dom_one @dom_cons @dom_app @dom_map.
Hint Resolve
@disjoint_sym_1 @disjoint_nil_1 @disjoint_one_2 @disjoint_cons_3
@disjoint_app_3 @disjoint_map_2 @uniq_nil @uniq_push @uniq_one_1
@uniq_cons_3 @uniq_app_4 @uniq_map_2.
Hint Resolve
@binds_one_3 @binds_cons_2 @binds_cons_3 @binds_app_2 @binds_app_3
@binds_map_2.
(* *********************************************************************** *)
(** * List properties *)
(** The following properties are an assortment of structural properties about association lists. *)
Section AssortedListProperties.
Variable  X : Type.
Variables x : X.
Variables xs ys zs : list X.

Lemma binds_In_inv : forall x (E : list (X.t*A)),
In x (dom E) ->
exists a, binds x a E.