proposition: Lemma term_size_many_app_le P Qs : term_size P <= term_size (many_app P Qs).
proof: Proof. elim: Qs P; first by move=> /=; lia. move=> Q Qs + P => /(_ (app P Q)) /=. by lia. Qed.
imports: List Lia Undecidability.SystemF.SysF Undecidability.SystemF.Autosubst.syntax Undecidability.SystemF.Autosubst.unscoped Undecidability.SystemF.Util(Facts poly_type_facts pure_term_facts) ssreflect ssrbool ssrfun