Definition pointer_range_overlap p n p' n' :=
  exists l l', val2adr p l /\ val2adr p' l' /\ range_overlap l n l' n'.

(* Specifications: *)
Lemma pointer_range_overlap_dec: forall p1 n1 p2 n2, {pointer_range_overlap p1 n1 p2 n2} + {~ pointer_range_overlap p1 n1 p2 n2}.
Lemma pointer_range_overlap_refl: forall p n1 n2, isptr p -> n1 > 0 -> n2 > 0 -> pointer_range_overlap p n1 p n2.
Lemma pointer_range_overlap_comm: forall p1 n1 p2 n2, pointer_range_overlap p1 n1 p2 n2 <-> pointer_range_overlap p2 n2 p1 n1.
Lemma pointer_range_overlap_non_zero: forall p1 n1 p2 n2, pointer_range_overlap p1 n1 p2 n2 -> n1 > 0 /\ n2 > 0.
Lemma pointer_range_overlap_isptr: forall p1 n1 p2 n2, pointer_range_overlap p1 n1 p2 n2 -> isptr p1 /\ isptr p2.