Section LIST.
Context {cs: compspecs}.
Context  {list_structid: ident} {list_link: ident} {list_token: share -> val -> mpred}.
Definition lseg (ls: listspec list_structid list_link list_token) (sh: share)
(contents: list (elemtype ls)) (x y: val) : mpred :=
EX al:list (val*elemtype ls),
!! (contents = map snd al) &&
LsegGeneral.lseg ls sh sh al x y.

Lemma lseg_eq (ls: listspec list_structid list_link list_token):
forall sh l v ,
is_pointer_or_null v ->
lseg ls sh l v v = !!(l=nil) && emp.