Hint Resolve listrep_valid_pointer : valid_pointer.

(* Specifications: *)
Lemma listrep_null: forall sh contents x,
x = nullval ->
listrep sh contents x = !! (contents=nil) && emp.
Lemma listrep_nonnull: forall sh contents x,
x <> nullval ->
listrep sh contents x = EX h: int, EX hs: list int, EX y:val,
!! (contents = h :: hs) &&
field_at sh t_struct_list [StructField _head] (Vint h) x *
field_at sh t_struct_list [StructField _tail] y x *
listrep sh hs y.
Lemma listrep_null: forall sh contents,
listrep sh contents nullval = !! (contents=nil) && emp.
Lemma is_pointer_or_null_not_null:
forall x, is_pointer_or_null x -> x <> nullval -> isptr x.