Hint Resolve type_builtin_args_incr type_builtin_res_incr: ty.

(* Specifications: *)
Lemma type_builtin_arg_sound:
forall e a ty e' te,
type_builtin_arg e a ty = OK e' -> S.satisf te e' -> type_of_builtin_arg te a = ty.
Lemma type_builtin_args_sound:
forall al tyl e e' te,
type_builtin_args e al tyl = OK e' -> S.satisf te e' -> List.map (type_of_builtin_arg te) al = tyl.
Lemma type_builtin_res_sound:
forall e a ty e' te,
type_builtin_res e a ty = OK e' -> S.satisf te e' -> type_of_builtin_res te a = ty.
Lemma type_instr_incr:
forall e i e' te,
type_instr e i = OK e' -> S.satisf te e' -> S.satisf te e.
Lemma type_instr_sound:
forall e i e' te,
type_instr e i = OK e' -> S.satisf te e' -> wt_instr f te i.
Lemma type_code_sound:
forall pc i e e' te,
type_code e = OK e' ->
f.(fn_code)!pc = Some i -> S.satisf te e' -> wt_instr f te i.
Theorem type_function_correct:
forall env, type_function = OK env -> wt_function f env.