(**************************************************)
(* assoc_add properties                           *)
(**************************************************)

(* Specifications: *)
Lemma assoc_add_egale_cons :
forall (t : assoc) (k : K) (v : V),
assoc_eqm (assoc_find (mkTuple k v :: t)) (assoc_find (assoc_add t k v)).
Lemma assoc_add_correct_1 :
forall (k : K) (v : V) (t : assoc),
assoc_almost_eqm k (assoc_find (assoc_add t k v)) (assoc_find t).
Lemma assoc_add_correct_2 :
forall (k : K) (v : V) (t : assoc),
assoc_find (assoc_add t k v) k = some V v.
Lemma assoc_add_correct_3 :
forall (k : K) (v : V) (t : assoc), assoc_hasmem (assoc_add t k v) k v.
Lemma assoc_add_correct_4 :
forall (k : K) (v : V) (t : assoc), assoc_mem (assoc_add t k v) k.