proposition: Lemma equiv_neq_lambda_app (s' s t: exp X): lambda s' ≡ s t -> isAtom (head s) -> False.
proof: Proof. intros EQ. destruct (head s) as [y | | | ] eqn: H'; intuition idtac. all: eapply church_rosser in EQ as (v & L & R); trivial. all: eapply steps_lam in L as (v' & ? & ?); subst. all: eapply steps_app in R as [R|R]. 1, 3: destruct R as (? & ? & ? & ?); discriminate. all: destruct R; intuition idtac; rewrite H' in *; syn. Qed.
imports: Morphisms Lia FinFun Undecidability.HOU(std.std) Undecidability.HOU.calculus(prelim terms syntax semantics confluence)