(***********)
(* subheap *)
(***********)

(* Specifications: *)
Lemma subheap_refl h : def h -> subheap h h.
Lemma subheapUnl h1 h2 : def (h1 :+ h2) -> subheap h1 (h1 :+ h2).
Lemma subheapUnr h1 h2 : def (h1 :+ h2) -> subheap h2 (h1 :+ h2).
Lemma subheap_id hp1 hp2: subheap hp1 hp2 -> subheap hp2 hp1 -> hp1 = hp2.
(***********************)
(* Some derived lemmas *)
(***********************)
Lemma noalias h1 h2 x1 x2 :
x1 \in dom h1 -> x2 \in dom h2 -> def (h1 :+ h2) -> x1 != x2.
Lemma defPtUn A h x (v : A) :
def (x :-> v :+ h) = [&& x != null, def h & x \notin dom h].