Definition lset_same_support {A} (lset1 lset2 : AMap.t A) :=
  forall loc,
    AMap.find loc lset1 = None <->
    AMap.find loc lset2 = None.

(* Specifications: *)
Lemma sparsity_same_support {A} (lset1 lset2 : AMap.t A) : lset_same_support lset1 lset2 -> lock_sparsity lset1 -> lock_sparsity lset2.
Lemma same_support_change_lock {A} (lset : AMap.t A) l x : AMap.find l lset <> None -> lset_same_support lset (AMap.add l x lset).
Lemma lset_same_support_map {A} m (f : A -> A) : lset_same_support (AMap.map (option_map f) m) m.
Lemma lset_same_support_sym {A} (m1 m2 : AMap.t A) : lset_same_support m1 m2 -> lset_same_support m2 m1.
Lemma lset_same_support_trans {A} (m1 m2 m3 : AMap.t A) : lset_same_support m1 m2 -> lset_same_support m2 m3 -> lset_same_support m1 m3.
Lemma mem_compatible_forget {tp : jstate ge} {m phi} : mem_compatible_with tp m phi -> mem_compatible tp m.