End SOUNDNESS.
(** ** Extension to separate compilation *)
(** Following Kang et al, POPL 2016, we now extend the results above to the case where only one compilation unit is analyzed, and not the whole program.  *)
Section LINKING.
Variable prog: program.
Let ge := Genv.globalenv prog.
Inductive sound_state: state -> Prop :=
| sound_state_intro: forall st,
(forall cunit, linkorder cunit prog -> sound_state_base cunit ge st) ->
sound_state st.

(* Specifications: *)
Theorem sound_step:
forall st t st', RTL.step ge st t st' -> sound_state st -> sound_state st'.