Fixpoint id2pred_star   {cs: compspecs}
(Delta: tycontext) (gz: globals) (sh: share) (v: val) (dl: list init_data) : environ->mpred :=
match dl with
| d::dl' => `(init_data2pred' Delta gz d sh v)
* id2pred_star Delta gz sh (offset_val (init_data_size d) v) dl'
| nil => emp
end.
Arguments id2pred_star cs Delta gz sh v dl rho  / .

Lemma init_data_list_size_pos : forall a, init_data_list_size a >= 0.
Definition globvar_all_aligned {cs: compspecs} gv : bool :=
forallb (fun a =>andb
(init_data_size a mod hardware_alignof ha_env_cs (gvar_info gv) =? 0)
(init_data_size a mod alignof (gvar_info gv) =? 0))
(gvar_init gv).