Lean proof layout: normal local domain of dim >= 2 has depth >= 2 (S2)
Route that avoids localizing: pick 0 β x β πͺ, reduce to depth(R/xR) β 0 via depth(M/xM)+1 = depth M. If depth = 0 then πͺ β Ass(R/xR); with Submodule.isAssociatedPrime_iff (Noetherian) get m with πͺ = colon β₯ {m}, lift m = mk y, and turn membership into r β πͺ β x β£ r * y using x β’ (β€ : Submodule R R) = span {x} (needs open Pointwise, proved by β Submodule.ideal_span_singleton_smul, smul_eq_mul, mul_top). Case split on β r β πͺ, β b β πͺ, r*y = x*b: yes βΉ z = y/x preserves Submodule.map (Algebra.linearMap R K) πͺ, so isIntegral_of_smul_mem_submodule + IsIntegrallyClosed.isIntegral_iff give y β xR; no βΉ the cofactor is a unit and πͺ = span {r}, so ringKrullDim_le_spanFinrank_maximalIdeal gives dim β€ 1. Gotcha: (I.fg_of_isNoetherianRing).map f resolves to Ideal.FG.map (wants a RingHom); write Submodule.FG.map f hfg.