proposition: Lemma allfv_pure_term_impl {p1 p2: nat -> Prop} {M}: (forall x, p1 x -> p2 x) -> allfv_pure_term p1 M -> allfv_pure_term p2 M.
proof: Proof. elim: M p1 p2. - move=> >. by apply. - by move=> ? IH1 ? IH2 > /= /[dup] [/IH1 {}IH1 /IH2 {}IH2] [/IH1 ? /IH2 ?]. - move=> > IH > H /=. apply: IH. by case. Qed.
imports: List Lia Undecidability.SystemF.SysF Undecidability.SystemF.Autosubst.syntax Undecidability.SystemF.Autosubst.unscoped Undecidability.SystemF.Util.Facts Undecidability.SystemF.Util.poly_type_facts ssreflect ssrbool ssrfun