Definition lseg_cell (ls: listspec list_structid list_link list_token)
(sh : share)
(v: elemtype ls) (x y: val) :=
!!is_pointer_or_null y && list_token sh x * list_cell ls sh v x * field_at sh list_struct (StructField list_link :: nil) (valinject (nested_field_type list_struct (StructField list_link :: nil)) y) x.

Lemma lseg_cons_eq2: forall
(ls : listspec list_structid list_link list_token) (sh : share) (h : elemtype ls)
(r : list (elemtype ls))
(x z : val), lseg ls sh (h :: r) x z =
!!(~ ptr_eq x z) && (EX  y : val, lseg_cell ls sh h x y * lseg ls sh r y z).