Section SysF_TYP_to_SysF_TC.
Variables M0 : pure_term.
Definition Gamma_M0 := [poly_abs (poly_var 0)].
Definition M_M0 := pure_app (pure_var 0) (many_pure_term_abs (pure_var_bound M0) M0).
Definition t_M0 := poly_var 0.
(* overall, we show that M0 is typable iff Gamma_M0 ⊢ M_M0 : t_M0 holds *)
End SysF_TYP_to_SysF_TC.
End Argument.

(* System F Typability many-one reduces to System F Type Checking *)
Theorem reduction : SysF_TYP ⪯ SysF_TC.