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

Lemma list_cell_valid_pointerx:
forall (ls : listspec list_structid list_link list_token)  sh v p,
sh <> Share.bot ->
list_cell ls sh v p |-- valid_pointer p.