Theorem: Ideal.radical_eq_sInf
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rintro rfl
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
m : Ideal R
hrm : r ∉ m.radical
him : I ≤ m
hm : ∀ z ∈ {K | r ∉ K.radical}, m ≤ z → z = m
this : ∀ x ∉ m, r ∈ (m ⊔ span {x}).radical
⊢ m ≠ ⊤
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
hrm : r ∉ ⊤.radical
him : I ≤ ⊤
hm : ∀ z ∈ {K | r ∉ K.radical}, ⊤ ≤ z → z = ⊤
this : ∀ x ∉ ⊤, r ∈ (⊤ ⊔ span {x}).radical
⊢ False

tactic: rw [radical_top] at hrm
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
hrm : r ∉ ⊤.radical
him : I ≤ ⊤
hm : ∀ z ∈ {K | r ∉ K.radical}, ⊤ ≤ z → z = ⊤
this : ∀ x ∉ ⊤, r ∈ (⊤ ⊔ span {x}).radical
⊢ False
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
hrm : r ∉ ⊤
him : I ≤ ⊤
hm : ∀ z ∈ {K | r ∉ K.radical}, ⊤ ≤ z → z = ⊤
this : ∀ x ∉ ⊤, r ∈ (⊤ ⊔ span {x}).radical
⊢ False

tactic: exact hrm trivial
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
hrm : r ∉ ⊤
him : I ≤ ⊤
hm : ∀ z ∈ {K | r ∉ K.radical}, ⊤ ≤ z → z = ⊤
this : ∀ x ∉ ⊤, r ∈ (⊤ ⊔ span {x}).radical
⊢ False
state_after: no goals

tactic: rw [pow_add, ← hpqrn, ← hcxq, ← hfgrk, ← hdyg, add_mul, mul_add (c * x),
    mul_assoc c x (d * y), mul_left_comm x, ← mul_assoc]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
m : Ideal R
hrm : r ∉ m.radical
him : I ≤ m
hm : ∀ z ∈ {K | r ∉ K.radical}, m ≤ z → z = m
this : ∀ x ∉ m, r ∈ (m ⊔ span {x}).radical
x y : R
hxym : x * y ∈ m
hxm : x ∉ m
hym : y ∉ m
n : ℕ
hrn : r ^ n ∈ m ⊔ span {x}
p : R
hpm : p ∈ m
q : R
hq : q ∈ span {x}
hpqrn : p + q = r ^ n
c : R
hcxq : c * x = q
k : ℕ
hrk : r ^ k ∈ m ⊔ span {y}
f : R
hfm : f ∈ m
g : R
hg : g ∈ span {y}
hfgrk : f + g = r ^ k
d : R
hdyg : d * y = g
⊢ r ^ (n + k) ∈ m
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
m : Ideal R
hrm : r ∉ m.radical
him : I ≤ m
hm : ∀ z ∈ {K | r ∉ K.radical}, m ≤ z → z = m
this : ∀ x ∉ m, r ∈ (m ⊔ span {x}).radical
x y : R
hxym : x * y ∈ m
hxm : x ∉ m
hym : y ∉ m
n : ℕ
hrn : r ^ n ∈ m ⊔ span {x}
p : R
hpm : p ∈ m
q : R
hq : q ∈ span {x}
hpqrn : p + q = r ^ n
c : R
hcxq : c * x = q
k : ℕ
hrk : r ^ k ∈ m ⊔ span {y}
f : R
hfm : f ∈ m
g : R
hg : g ∈ span {y}
hfgrk : f + g = r ^ k
d : R
hdyg : d * y = g
⊢ p * (f + d * y) + (c * x * f + c * d * (x * y)) ∈ m

tactic: refine
  m.add_mem (m.mul_mem_right _ hpm)
    (m.add_mem (m.mul_mem_left _ hfm) (m.mul_mem_left _ hxym))
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I✝ J K L I : Ideal R
r : R
hr : r ∈ sInf {J | I ≤ J ∧ J.IsPrime}
hri : r ∉ I.radical
m : Ideal R
hrm : r ∉ m.radical
him : I ≤ m
hm : ∀ z ∈ {K | r ∉ K.radical}, m ≤ z → z = m
this : ∀ x ∉ m, r ∈ (m ⊔ span {x}).radical
x y : R
hxym : x * y ∈ m
hxm : x ∉ m
hym : y ∉ m
n : ℕ
hrn : r ^ n ∈ m ⊔ span {x}
p : R
hpm : p ∈ m
q : R
hq : q ∈ span {x}
hpqrn : p + q = r ^ n
c : R
hcxq : c * x = q
k : ℕ
hrk : r ^ k ∈ m ⊔ span {y}
f : R
hfm : f ∈ m
g : R
hg : g ∈ span {y}
hfgrk : f + g = r ^ k
d : R
hdyg : d * y = g
⊢ p * (f + d * y) + (c * x * f + c * d * (x * y)) ∈ m
state_after: no goals