(* own isn't precise unless the ghost is a Disj_alg. Is this a problem? *)

Lemma own_list_alloc : forall la lp, Forall valid la -> length lp = length la ->
emp |-- |==> (EX lg : _, !!(Zlength lg = Zlength la) &&
iter_sepcon (fun '(g, a, p) => own g a p) (combine (combine lg la) lp)).