Definition env_initial_value (e: env) (m: mem) :=
forall id b ty chunk,
e!id = Some(b, ty) -> access_mode ty = By_value chunk -> Mem.load chunk m b 0 = Some Vundef.

(* Specifications: *)
Lemma alloc_variables_initial_value:
forall e m vars e' m',
alloc_variables ge e m vars e' m' ->
env_initial_value e m ->
env_initial_value e' m'.
Lemma create_undef_temps_charact:
forall id ty vars, In (id, ty) vars -> (create_undef_temps vars)!id = Some Vundef.
Lemma create_undef_temps_inv:
forall vars id v, (create_undef_temps vars)!id = Some v -> v = Vundef /\ In id (var_names vars).
Lemma create_undef_temps_exten:
forall id l1 l2,
(In id (var_names l1) <-> In id (var_names l2)) ->
(create_undef_temps l1)!id = (create_undef_temps l2)!id.