proposition: Lemma iipc2_poly_arrE {Gamma s t}: iipc2 Gamma (poly_arr s t) -> iipc2 (s :: Gamma) t.
proof: Proof. move=> [?] /(@typing_ren_term' S) => /(_ (s :: Gamma) ltac:(done)). move=> /typing_app => /(_ (var 0)) H. eexists. apply: H. by apply: typing_var. Qed.
imports: List Lia Undecidability.SystemF.SysF Undecidability.SystemF.Autosubst.syntax Undecidability.SystemF.Util(Facts poly_type_facts typing_facts) ssreflect ssrbool ssrfun