Theorem: Ideal.isJacobson_localization
File: Mathlib/RingTheory/Jacobson.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
⊢ IsJacobson S
state_after: R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
⊢ ∀ (P : Ideal S), P.IsPrime → P.jacobson = P
tactic: rw [isJacobson_iff_prime_eq]
state_before: R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
⊢ ∀ (P : Ideal S), P.IsPrime → P.jacobson = P
state_after: R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP' : P'.IsPrime
⊢ P'.jacobson ≤ P'
tactic: refine fun P' hP' => le_antisymm ?_ le_jacobson
state_before: R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP' : P'.IsPrime
⊢ P'.jacobson ≤ P'
state_after: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
⊢ P'.jacobson ≤ P'
tactic: obtain ⟨hP', hPM⟩ := (IsLocalization.isPrime_iff_isPrime_disjoint (powers y) S P').mp hP'
state_before: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
⊢ P'.jacobson ≤ P'
state_after: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
⊢ P'.jacobson ≤ P'
tactic: have hP := H.out hP'.isRadical
state_before: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
⊢ P'.jacobson ≤ P'
state_after: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
⊢ comap (algebraMap R S) P'.jacobson ≤ comap (algebraMap R S) P'
tactic: refine (IsLocalization.map_comap (powers y) S P'.jacobson).ge.trans
    ((map_mono ?_).trans (IsLocalization.map_comap (powers y) S P').le)
state_before: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
⊢ comap (algebraMap R S) P'.jacobson ≤ comap (algebraMap R S) P'
state_after: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
⊢ comap (algebraMap R S) P'.jacobson ≤ sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}
tactic: refine le_trans ?_ this
state_before: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
⊢ comap (algebraMap R S) P'.jacobson ≤ sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}
state_after: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
⊢ ⨅ I ∈ comap (algebraMap R S) '' {J | P' ≤ J ∧ J.IsMaximal}, I ≤
    ⨅ a ∈ {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}, a
tactic: rw [Ideal.jacobson, comap_sInf', sInf_eq_iInf]
state_before: case intro
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
⊢ ⨅ I ∈ comap (algebraMap R S) '' {J | P' ≤ J ∧ J.IsMaximal}, I ≤
    ⨅ a ∈ {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}, a
state_after: case intro.refine_1
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I✝ : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
I : Ideal R
hI : I ∈ {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}
⊢ map (algebraMap R S) I ∈ {J | P' ≤ J ∧ J.IsMaximal}

case intro.refine_2
R : Type u_1
S : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing S
I✝ : Ideal R
y : R
inst✝¹ : Algebra R S
inst✝ : Away y S
H : IsJacobson R
P' : Ideal S
hP'✝ : P'.IsPrime
hP' : (comap (algebraMap R S) P').IsPrime
hPM : Disjoint ↑(powers y) ↑(comap (algebraMap R S) P')
hP : (comap (algebraMap R S) P').jacobson = comap (algebraMap R S) P'
this : sInf {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I} ≤ comap (algebraMap R S) P'
I : Ideal R
hI : I ∈ {I | comap (algebraMap R S) P' ≤ I ∧ I.IsMaximal ∧ y ∉ I}
⊢ comap (algebraMap R S) (map (algebraMap R S) I) = I
tactic: refine iInf_le_iInf_of_subset fun I hI => ⟨map (algebraMap R S) I, ⟨?_, ?_⟩⟩