R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf {J | K ≤ J ∧ IsMaximal J}) = sInf {J | comap f K ≤ J ∧ IsMaximal J}
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (jacobson K) = jacobson (comap f K)
unfold Ideal.jacobson
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf {J | K ≤ J ∧ IsMaximal J}) ≤ sInf {J | comap f K ≤ J ∧ IsMaximal J}

case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f (sInf {J | K ≤ J ∧ IsMaximal J})
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf {J | K ≤ J ∧ IsMaximal J}) = sInf {J | comap f K ≤ J ∧ IsMaximal J}
refine' le_antisymm _ _
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf (insert ⊤ {J | K ≤ J ∧ IsMaximal J})) ≤ sInf {J | comap f K ≤ J ∧ IsMaximal J}
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf {J | K ≤ J ∧ IsMaximal J}) ≤ sInf {J | comap f K ≤ J ∧ IsMaximal J}
refine le_trans (comap_mono (le_of_eq (Trans.trans top_inf_eq.symm sInf_insert.symm))) ?_
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ (⨅ (I : Ideal R) (_ : I ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}), I) ≤
    ⨅ (a : Ideal R) (_ : a ∈ {J | comap f K ≤ J ∧ IsMaximal J}), a
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ comap f (sInf (insert ⊤ {J | K ≤ J ∧ IsMaximal J})) ≤ sInf {J | comap f K ≤ J ∧ IsMaximal J}
rw [comap_sInf', sInf_eq_iInf]
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ (⨅ (I : Ideal R) (_ : I ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}), I) ≤
    ⨅ (a : Ideal R) (_ : a ∈ {J | comap f K ≤ J ∧ IsMaximal J}), a
refine' iInf_le_iInf_of_subset fun J hJ => _
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
have : comap f (map f J) = J :=
  Trans.trans (comap_map_of_surjective f hf J)
    (le_antisymm (sup_le_iff.2 ⟨le_of_eq rfl, le_trans (comap_mono bot_le) hJ.left⟩)
      le_sup_left)
case refine'_1.inl
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
htop : map f J = ⊤
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}

case refine'_1.inr
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
hmax : IsMaximal (map f J)
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
case refine'_1
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
cases' map_eq_top_or_isMaximal_of_surjective _ hf hJ.right with htop hmax
no goals
case refine'_1.inl
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
htop : map f J = ⊤
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
exact ⟨⊤, ⟨Set.mem_insert ⊤ _, htop ▸ this⟩⟩
no goals
case refine'_1.inr
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
J : Ideal R
hJ : J ∈ {J | comap f K ≤ J ∧ IsMaximal J}
this : comap f (map f J) = J
hmax : IsMaximal (map f J)
⊢ J ∈ comap f '' insert ⊤ {J | K ≤ J ∧ IsMaximal J}
exact ⟨map f J, ⟨Set.mem_insert_of_mem _ ⟨le_map_of_comap_le_of_surjective f hf hJ.1, hmax⟩,
  this⟩⟩
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ ⨅ (I : Ideal S) (_ : I ∈ {J | K ≤ J ∧ IsMaximal J}), comap f I
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f (sInf {J | K ≤ J ∧ IsMaximal J})
rw [comap_sInf]
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K J : Ideal S
hJ : J ∈ {J | K ≤ J ∧ IsMaximal J}
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f J
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K : Ideal S
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ ⨅ (I : Ideal S) (_ : I ∈ {J | K ≤ J ∧ IsMaximal J}), comap f I
refine' le_iInf_iff.2 fun J => le_iInf_iff.2 fun hJ => _
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K J : Ideal S
hJ : J ∈ {J | K ≤ J ∧ IsMaximal J}
this : IsMaximal J
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f J
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K J : Ideal S
hJ : J ∈ {J | K ≤ J ∧ IsMaximal J}
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f J
haveI : J.IsMaximal := hJ.right
no goals
case refine'_2
R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
K J : Ideal S
hJ : J ∈ {J | K ≤ J ∧ IsMaximal J}
this : IsMaximal J
⊢ sInf {J | comap f K ≤ J ∧ IsMaximal J} ≤ comap f J
refine' sInf_le ⟨comap_mono hJ.left, comap_isMaximal_of_surjective _ hf⟩