proposition: Lemma SU_term_to_poly_type_SU_substitute {ζ t} : subst_poly_type (fun x : nat => SU_term_to_poly_type (ζ x)) (SU_term_to_poly_type t) = SU_term_to_poly_type (SU.substitute ζ t).
proof: Proof. elim: t; [done | by move=> /= ? -> ? ->]. Qed.
imports: List Lia Undecidability.SystemF.SysF Undecidability.SystemF.Autosubst.syntax Undecidability.SystemF.Util(Facts poly_type_facts pure_term_facts term_facts typing_facts pure_typing_facts pure_typable_prenex) ssreflect ssrbool ssrfun