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

tactic: constructor
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
J : Ideal S
⊢ J.IsMaximal ↔ (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
state_after: case mp
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
J : Ideal S
⊢ J.IsMaximal → (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J

case mpr
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
J : Ideal S
⊢ (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J → J.IsMaximal

tactic: refine fun h => ⟨?_, fun hy =>
  h.ne_top (Ideal.eq_top_of_isUnit_mem _ hy (map_units _ ⟨y, Submonoid.mem_powers _⟩))⟩
state_before: case mp
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
J : Ideal S
⊢ J.IsMaximal → (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: have hJ : J.IsPrime := IsMaximal.isPrime h
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : J.IsPrime
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: rw [isPrime_iff_isPrime_disjoint (Submonoid.powers y)] at hJ
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : J.IsPrime
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: have : y ∉ (comap (algebraMap R S) J).1 := Set.disjoint_left.1 hJ.right (Submonoid.mem_powers _)
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : y ∉ (comap (algebraMap R S) J).toAddSubmonoid
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: erw [← H.out hJ.left.isRadical, mem_sInf] at this
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : y ∉ (comap (algebraMap R S) J).toAddSubmonoid
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : ¬∀ ⦃I : Ideal R⦄, I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal} → y ∈ I
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: push_neg at this
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : ¬∀ ⦃I : Ideal R⦄, I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal} → y ∈ I
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : ∃ I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}, y ∉ I
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: rcases this with ⟨I, hI, hI'⟩
state_before: case mp
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
this : ∃ I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}, y ∉ I
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case mp.intro.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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
⊢ (comap (algebraMap R S) J).IsMaximal

tactic: convert hI.right
state_before: case mp.intro.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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
⊢ (comap (algebraMap R S) J).IsMaximal
state_after: case h.e'_3.h
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
⊢ comap (algebraMap R S) J = I

tactic: by_cases hJ : J = map (algebraMap R S) I
state_before: case h.e'_3.h
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
J : Ideal S
h : J.IsMaximal
hJ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
⊢ comap (algebraMap R S) J = I
state_after: case pos
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : J = map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I

case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I

tactic: rw [hJ, comap_map_of_isPrime_disjoint (powers y) S I (IsMaximal.isPrime hI.right)]
state_before: case pos
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : J = map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I
state_after: case pos
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : J = map (algebraMap R S) I
⊢ Disjoint ↑(powers y) ↑I

tactic: rwa [disjoint_powers_iff_not_mem y hI.right.isPrime.isRadical]
state_before: case pos
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : J = map (algebraMap R S) I
⊢ Disjoint ↑(powers y) ↑I
state_after: no goals

tactic: have hI_p : (map (algebraMap R S) I).IsPrime := by
  refine isPrime_of_isPrime_disjoint (powers y) _ I hI.right.isPrime ?_
  rwa [disjoint_powers_iff_not_mem y hI.right.isPrime.isRadical]
state_before: case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I
state_after: case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
hI_p : (map (algebraMap R S) I).IsPrime
⊢ comap (algebraMap R S) J = I

tactic: have : J ≤ map (algebraMap R S) I := map_comap (Submonoid.powers y) S J ▸ map_mono hI.left
state_before: case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
hI_p : (map (algebraMap R S) I).IsPrime
⊢ comap (algebraMap R S) J = I
state_after: case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
hI_p : (map (algebraMap R S) I).IsPrime
this : J ≤ map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I

tactic: exact absurd (h.1.2 _ (lt_of_le_of_ne this hJ)) hI_p.1
state_before: case neg
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
hI_p : (map (algebraMap R S) I).IsPrime
this : J ≤ map (algebraMap R S) I
⊢ comap (algebraMap R S) J = I
state_after: no goals

tactic: refine isPrime_of_isPrime_disjoint (powers y) _ I hI.right.isPrime ?_
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
⊢ (map (algebraMap R S) I).IsPrime
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
⊢ Disjoint ↑(powers y) ↑I

tactic: rwa [disjoint_powers_iff_not_mem y hI.right.isPrime.isRadical]
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
J : Ideal S
h : J.IsMaximal
hJ✝ : (comap (algebraMap R S) J).IsPrime ∧ Disjoint ↑(powers y) ↑(comap (algebraMap R S) J)
I : Ideal R
hI : I ∈ {J_1 | comap (algebraMap R S) J ≤ J_1 ∧ J_1.IsMaximal}
hI' : y ∉ I
e_2✝ : CommSemiring.toSemiring = Ring.toSemiring
hJ : ¬J = map (algebraMap R S) I
⊢ Disjoint ↑(powers y) ↑I
state_after: no goals

tactic: refine fun h => ⟨⟨fun hJ => h.1.ne_top (eq_top_iff.2 ?_), fun I hI => ?_⟩⟩
state_before: case mpr
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
J : Ideal S
⊢ (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J → J.IsMaximal
state_after: case mpr.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
hJ : J = ⊤
⊢ ⊤ ≤ comap (algebraMap R S) J

case mpr.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
⊢ I = ⊤

tactic: rwa [eq_top_iff, ← (IsLocalization.orderEmbedding (powers y) S).le_iff_le] at hJ
state_before: case mpr.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
hJ : J = ⊤
⊢ ⊤ ≤ comap (algebraMap R S) J
state_after: no goals

tactic: have := congr_arg (map (algebraMap R S)) (h.1.1.2 _ ⟨comap_mono (le_of_lt hI), ?_⟩)
state_before: case mpr.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
⊢ I = ⊤
state_after: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
this : map (algebraMap R S) (comap (algebraMap R S) I) = map (algebraMap R S) ⊤
⊢ I = ⊤

case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
⊢ ¬↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)

tactic: refine fun hI' => hI.right ?_
state_before: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
⊢ ¬↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)
state_after: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
hI' : ↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)
⊢ ↑I ⊆ ↑J

tactic: rw [← map_comap (powers y) S I, ← map_comap (powers y) S J]
state_before: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
hI' : ↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)
⊢ ↑I ⊆ ↑J
state_after: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
hI' : ↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)
⊢ ↑(map (algebraMap R S) (comap (algebraMap R S) I)) ⊆ ↑(map (algebraMap R S) (comap (algebraMap R S) J))

tactic: exact map_mono hI'
state_before: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
hI' : ↑(comap (algebraMap R S) I) ⊆ ↑(comap (algebraMap R S) J)
⊢ ↑(map (algebraMap R S) (comap (algebraMap R S) I)) ⊆ ↑(map (algebraMap R S) (comap (algebraMap R S) J))
state_after: no goals

tactic: rwa [map_comap (powers y) S I, map_top] at this
state_before: case mpr.refine_2.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
J : Ideal S
h : (comap (algebraMap R S) J).IsMaximal ∧ y ∉ comap (algebraMap R S) J
I : Ideal S
hI : J < I
this : map (algebraMap R S) (comap (algebraMap R S) I) = map (algebraMap R S) ⊤
⊢ I = ⊤
state_after: no goals