Module pure_typable_intro_prenex_aux.

Lemma pure_typable_many_pure_app_repeat_poly_var {Gamma x y ny nss t} :
nth_error Gamma x = Some
(fold_right (fun '(n, s) r => many_poly_abs n (poly_arr s r)) t nss) ->
nth_error Gamma y = Some (poly_var ny) ->
pure_typable Gamma (many_pure_app (pure_var x) (repeat (pure_var y) (length nss))) ->
Forall (fun '(_, s) => exists n x, s = many_poly_abs n (poly_var (n + x))) nss.