End INITMEM_INVERSION.

(* Specifications: *)
Theorem init_mem_inversion:
forall p m id v,
init_mem p = Some m ->
In (id, Gvar v) p.(prog_defs) ->
init_data_list_aligned 0 v.(gvar_init)
/\ forall i o, In (Init_addrof i o) v.(gvar_init) -> exists b, find_symbol (globalenv p) i = Some b.
Theorem init_mem_inversion:
forall p m id v,
init_mem p = Some m ->
In (id, Gvar v) p.(prog_defs) ->
init_data_list_aligned 0 v.(gvar_init)
/\ forall i o, In (Init_addrof i o) v.(gvar_init) -> exists b, find_symbol (globalenv p) i = Some b.