(* del/hasmem ******************************)

(* Specifications: *)
Lemma assoc_del_hasmem_invar :
forall (l l' : assoc) (k k' : K) (v : V),
l' = assoc_delete l k' ->
k' <> k -> assoc_hasmem l k v -> assoc_hasmem l' k v.
Lemma assoc_del_hasmem_invar_contrap :
forall (l l' : assoc) (k k' : K) (v : V),
l' = assoc_delete l k' ->
k' <> k -> assoc_hasmem l' k v -> assoc_hasmem l k v.
Lemma assoc_del_not_hasmem_invar :
forall (l l' : assoc) (k k' : K) (v : V),
l' = assoc_delete l k' ->
k' <> k -> ~ assoc_hasmem l k v -> ~ assoc_hasmem l' k v.
Lemma assoc_del_not_hasmem_invar_contrap :
forall (l l' : assoc) (k k' : K) (v : V),
l' = assoc_delete l k' ->
k' <> k -> ~ assoc_hasmem l' k v -> ~ assoc_hasmem l k v.