Remark sound_state_inv:
forall st cunit,
sound_state st -> linkorder cunit prog -> sound_state_base cunit ge st.
End LINKING.
(** ** Soundness of the initial memory abstraction *)
Section INITIAL.
Variable prog: program.
Let ge := Genv.globalenv prog.

(* Specifications: *)
Lemma initial_block_classification:
forall m,
Genv.init_mem prog = Some m ->
exists bc,
genv_match bc ge
/\ bc_below bc (Mem.nextblock m)
/\ bc_nostack bc
/\ (forall b id, bc b = BCglob id -> Genv.find_symbol ge id = Some b)
/\ (forall b, Mem.valid_block m b -> bc b <> BCinvalid).