Admitted.
End LIST2.
Hint Rewrite @lseg_nil_eq : norm.
Hint Rewrite @lseg_eq using reflexivity: norm.
Hint Resolve @lseg_local_facts : saturate_local.
End LsegGeneral.
Module LsegSpecial.
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.