proposition: Lemma pure_typing_many_poly_abs_closed {s t n} : allfv_poly_type (fun=> False) s -> pure_typing [s] (pure_var 0) t -> pure_typing [s] (pure_var 0) (many_poly_abs n t).
proof: Proof. move=> Hs /pure_typingE [n1] [?] [?] [[?]] [HC ?]. subst. rewrite many_poly_abs_many_poly_abs. apply: pure_typing_pure_var; first by reflexivity. congr contains: HC. apply: ext_ren_poly_type_allfv_poly_type. by apply: allfv_poly_type_impl Hs. Qed.
imports: List Lia Relation_Definitions Relation_Operators Operators_Properties Undecidability.SystemF.SysF Undecidability.SystemF.Autosubst.syntax Undecidability.SystemF.Autosubst.unscoped Undecidability.SystemF.Util(Facts poly_type_facts pure_term_facts term_facts typing_facts iipc2_facts) ssreflect ssrbool ssrfun