-- Lean 4 proof step from Mathlib.RingTheory.DedekindDomain.AdicValuation (goal)
Goal:
R : Type u_1
inst : CommRing R
inst_1 : IsDedekindDomain R
K : Type u_2
inst_2 : Field K
inst_3 : Algebra R K
inst_4 : IsFractionRing R K
n d : R
hd : Membership.mem (γ := Submonoid R) (nonZeroDivisors R : Submonoid R) d
h :
  ∀ (v : HeightOneSpectrum R),
    LE.le (α := WithZero (Multiplicative ℤ))
      (((valuation K v : Valuation K (WithZero (Multiplicative ℤ))) : (a : K) → WithZero (Multiplicative ℤ))
          (IsLocalization.mk' K n
            (Subtype.mk (p := fun (x : R) ↦ Membership.mem (γ := Submonoid R) (nonZeroDivisors R : Submonoid R) x) d
              hd)) :
        WithZero (Multiplicative ℤ))
      (1 : WithZero (Multiplicative ℤ))
hx :
  HMul.hMul (β := K)
      (IsLocalization.mk' K n
        (Subtype.mk (p := fun (x : R) ↦ Membership.mem (γ := Submonoid R) (nonZeroDivisors R : Submonoid R) x) d hd))
      ((algebraMap R K : (a : R) → K)
          (↑(n,
                  Subtype.mk (p := fun (x : R) ↦ Membership.mem (γ := Submonoid R) (nonZeroDivisors R : Submonoid R) x)
                    d hd).2 :
            R) :
        K) =
    (algebraMap R K : (a : R) → K)
      (n, Subtype.mk (p := fun (x : R) ↦ Membership.mem (γ := Submonoid R) (nonZeroDivisors R : Submonoid R) x) d hd).1
hn0 : n ≠ 0
hd0 : d ≠ 0
inr inr₁ inr₂ :
  ∀ (ine : ∀ {r : R}, r ≠ 0 → Ne (α := Ideal R) (Ideal.span {r}) ⊥),
    Dvd.dvd (α := Ideal R) (Ideal.span {d}) (Ideal.span {n})
inr₃ :
  ∀ (ine : ∀ {r : R}, r ≠ 0 → Ne (α := Ideal R) (Ideal.span {r}) ⊥) (a : { a : Associates (Ideal R) // Irreducible a }),
    Multiset.count a (Associates.factors' (Ideal.span {d})) ≤ Multiset.count a (Associates.factors' (Ideal.span {n}))
inr₄ :
  ∀ (ine : ∀ {r : R}, r ≠ 0 → Ne (α := Ideal R) (Ideal.span {r}) ⊥) (v : Associates (Ideal R)) (hv : Irreducible v),
    Multiset.count (Subtype.mk (p := fun (a : Associates (Ideal R)) ↦ Irreducible a) v hv)
        (Associates.factors' (Ideal.span {d})) ≤
      Multiset.count (Subtype.mk (p := fun (a : Associates (Ideal R)) ↦ Irreducible a) v hv)
        (Associates.factors' (Ideal.span {n}))
⊢ Dvd.dvd (α := Ideal R) (Ideal.span {d}) (Ideal.span {n})
have inr₅ : ∀ (ine : ∀ {r : R}, r ≠ 0 → Ne (α := Ideal R) (Ideal.span {r}) ⊥) (v : Ideal R)
  (hv : Irreducible (M := Associates (Ideal R)) (Associates.mk v)),
  Multiset.count (Subtype.mk (p := fun (a : Associates (Ideal R)) ↦ Irreducible a) (Associates.mk v) hv)
      (Associates.factors' (Ideal.span {d})) ≤
    Multiset.count (Subtype.mk (p := fun (a : Associates (Ideal R)) ↦ Irreducible a) (Associates.mk v) hv)
      (Associates.factors' (Ideal.span {n}))
Tactic: classical
  have ine {r : R} : r ≠ 0 → Ideal.span {r} ≠ ⊥ := mt Ideal.span_singleton_eq_bot.mp
  rw [← Associates.mk_le_mk_iff_dvd, ← Associates.factors_le, Associates.factors_mk _ (ine hn0),
    Associates.factors_mk _ (ine hd0), WithTop.coe_le_coe, Multiset.le_iff_count]
  rintro ⟨v, hv⟩
  obtain ⟨v, rfl⟩ := Associates.mk_surjective v
  have hv' := hv
  rw [Associates.irreducible_mk, irreducible_iff_prime] at hv
  specialize h ⟨v, Ideal.isPrime_of_prime hv, hv.ne_zero⟩
  simp_rw [valuation_of_mk', intValuation_if_neg _ hn0, intValuation_if_neg _ hd0, ← exp_sub,
    ← exp_zero, exp_le_exp, Associates.factors_mk _ (ine hn0),
    Associates.factors_mk _ (ine hd0), Associates.count_some hv'] at h
  simpa using h