Section PRESERVATION.
Variable prog: RTL.program.
Variable tprog: LTL.program.
Hypothesis TRANSF: match_prog prog tprog.
Let ge := Genv.globalenv prog.
Let tge := Genv.globalenv tprog.
Proof (Genv.find_symbol_match TRANSF).
Proof (Genv.senv_match TRANSF).
Proof (Genv.find_funct_transf_partial TRANSF).
Proof (Genv.find_funct_ptr_transf_partial TRANSF).

Lemma find_function_translated:
forall ros rs fd ros' e e' ls,
RTL.find_function ge ros rs = Some fd ->
add_equation_ros ros ros' e = Some e' ->
satisf rs ls e' ->
exists tfd,
LTL.find_function tge ros' ls = Some tfd /\ transf_fundef fd = OK tfd.