End LsegRecursiveMaybeLoop.
Module LsegWandFrame.
Definition lseg (sh: share) (tcontents contents: list int) (x z: val) : mpred :=
listrep sh tcontents z -* listrep sh (contents ++ tcontents) x.

Lemma singleton_lseg: forall sh (contents: list int) (a: int) (x y: val),
field_at sh t_struct_list [StructField _head] (Vint a) x *
field_at sh t_struct_list [StructField _tail] y x |--
lseg sh contents [a] x y.