Module pure_typable_intro_prenex_aux.

(* show that (g x .. x) where x : ⊥ is typed by (many_poly_abs n s) for pure_typable_intro_prenex *)
Lemma aux_pure_typing_gxs {Gamma x M n s} :
nth_error Gamma x = Some (poly_abs (poly_var 0)) ->
pure_typing Gamma M (Nat.iter n (fun s' : poly_type => poly_abs (poly_arr (poly_var 0) s')) s) ->
pure_typing Gamma (many_pure_app M (repeat (pure_var x) n)) (many_poly_abs n s).