Definition match_prog (p tp: RTL.program) :=
  match_program (fun ctx f tf => tf = transf_fundef f) eq p tp.

(* Specifications: *)
Lemma transf_program_match: forall p, match_prog p (transf_program p).
Lemma functions_translated: forall v f, Genv.find_funct ge v = Some f -> Genv.find_funct tge v = Some (transf_fundef f).
Lemma function_ptr_translated: forall v f, Genv.find_funct_ptr ge v = Some f -> Genv.find_funct_ptr tge v = Some (transf_fundef f).
Lemma symbols_preserved: forall id, Genv.find_symbol tge id = Genv.find_symbol ge id.
Lemma senv_preserved: Senv.equiv ge tge.
Lemma sig_preserved: forall f, funsig (transf_fundef f) = funsig f.
Lemma find_function_translated: forall ros rs fd, find_function ge ros rs = Some fd -> find_function tge ros rs = Some (transf_fundef fd).