Remark type_expect_incr:
forall e ty1 ty2 e' te, type_expect e ty1 ty2 = OK e' -> S.satisf te e' -> S.satisf te e.
Hint Resolve type_expect_incr: ty.

(* Specifications: *)
Lemma type_expect_sound:
forall e ty1 ty2 e', type_expect e ty1 ty2 = OK e' -> ty1 = ty2.
Lemma type_builtin_arg_incr:
forall e a ty e' te, type_builtin_arg e a ty = OK e' -> S.satisf te e' -> S.satisf te e.
Lemma type_builtin_args_incr:
forall a ty e e' te, type_builtin_args e a ty = OK e' -> S.satisf te e' -> S.satisf te e.
Lemma type_builtin_res_incr:
forall e a ty e' te, type_builtin_res e a ty = OK e' -> S.satisf te e' -> S.satisf te e.