Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs. mk_varspecs prog. Defined.
Definition tlist := Tstruct _list noattr.
Definition tpile := Tstruct _pile noattr.
Fixpoint listrep (sigma: list Z) (x: val) : mpred :=
match sigma with
| h::hs =>
EX y:val,
!! (0 <= h <=  Int.max_signed) &&
data_at Ews tlist (Vint (Int.repr h), y) x
* malloc_token Ews tlist x
*  listrep hs y
| nil =>
!! (x = nullval) && emp
end.

Lemma listrep_local_facts:
forall sigma p,
listrep sigma p |--
!! (is_pointer_or_null p
/\ (p=nullval <-> sigma=nil)
/\ Forall (Z.le 0) sigma).