End LsegWandFrame.
Module GeneralLseg.
Section GeneralLseg.
Variable listrep: share -> list int -> val -> mpred.
Definition lseg (sh: share) (contents: list int) (x z: val) : mpred :=
ALL tcontents: list int, listrep sh tcontents z -* listrep sh (contents ++ tcontents) x.

(* Specifications: *)
Lemma lseg_lseg: forall sh (s1 s2: list int) (x y z: val),
lseg sh s2 y z * lseg sh s1 x y |-- lseg sh (s1 ++ s2) x z.
Lemma list_lseg: forall sh (s1 s2: list int) (x y: val),
listrep sh s2 y * lseg sh s1 x y |-- listrep sh (s1 ++ s2) x.