proposition: Lemma not_step_normal_form {M} : (forall N, not (step M N)) -> normal_form M.
proof: Proof. rewrite /not. elim: M. - by do ? constructor. - move=> [?|M1 M2|?] IH1 N IH2 H; [..|exfalso]. all: do ? constructor; by eauto using step. - do ? constructor. by eauto using step. Qed.
imports: Undecidability.LambdaCalculus.Lambda PeanoNat Lia List Relations ssreflect