Module pure_typable_intro_prenex_aux.
End pure_typable_intro_prenex_aux.

(* key Theorem that introduces closed assumption ∀..∀.s where s is simple *)
Theorem pure_typable_intro_prenex M s n :
is_simple s -> allfv_poly_type (gt n) s ->
{ N |
forall Gamma,
pure_typable (map tidy (many_poly_abs n s :: Gamma)) M <->
pure_typable (map tidy Gamma) N }.