(*From Cminorgenproof*)
Remark val_inject_function_pointer:
forall v fd j tv,
Genv.find_funct ge v = Some fd ->
globalfunction_ptr_inject j ->
val_inject j v tv ->
tv = v.
(* Lemma functions_translated: forall (v v': val) (f: Cminor.fundef), Genv.find_funct ge v = Some f -> Val.lessdef v v' -> Genv.find_funct tge v' = Some (sel_fundef hf ge f). *)

(* Specifications: *)
Lemma functions_translated:
forall (v v': val) (f: Cminor.fundef) j,
Genv.find_funct ge v = Some f ->
val_inject j v v' ->
globalfunction_ptr_inject j ->
Genv.find_funct tge v' = Some (sel_fundef hf ge f).
Lemma sig_function_translated:
forall f,
funsig (sel_fundef hf ge f) = Cminor.funsig f.
Lemma varinfo_preserved:
forall b, Genv.find_var_info tge b = Genv.find_var_info ge b.
Lemma helper_implements_preserved:
forall id sg vargs vres,
helper_implements ge id sg vargs vres ->
helper_implements tge id sg vargs vres.
Lemma builtin_implements_preserved:
forall id sg vargs vres,
builtin_implements ge id sg vargs vres ->
builtin_implements tge id sg vargs vres.
Lemma helpers_correct_preserved:
forall h, i64_helpers_correct ge h -> i64_helpers_correct tge h.