ring_theory.localization.at_prime
⟷
Mathlib.RingTheory.Localization.AtPrime
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -86,7 +86,7 @@ namespace IsLocalization
theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze =>
by
- rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
+ rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
obtain ⟨t, ht⟩ := (eq_iff_exists I.prime_compl S).1 hze
have htz : (t : R) = 0 := by simpa using ht.symm
exact t.2 (htz.symm ▸ I.zero_mem : ↑t ∈ I)
@@ -108,10 +108,10 @@ theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
rcases mk'_surjective I.prime_compl x with ⟨rx, sx, hrx⟩
rcases mk'_surjective I.prime_compl y with ⟨ry, sy, hry⟩
rcases mk'_surjective I.prime_compl z with ⟨rz, sz, hrz⟩
- rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.prime_compl.one_mem] at hxyz
- rw [← hrx] at hx ; rw [← hry] at hy
+ rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.prime_compl.one_mem] at hxyz
+ rw [← hrx] at hx; rw [← hry] at hy
obtain ⟨t, ht⟩ := IsLocalization.eq.1 hxyz
- simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
+ simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
suffices : ↑t * (↑sx * ↑sy * ↑sz) ∈ I;
exact
not_or_of_not (mt hp.mem_or_mem <| not_or_of_not sx.2 sy.2) sz.2
@@ -280,7 +280,7 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
IsLocalRingHom.mk fun x hx =>
by
rcases IsLocalization.mk'_surjective I.prime_compl x with ⟨r, s, rfl⟩
- rw [local_ring_hom_mk'] at hx
+ rw [local_ring_hom_mk'] at hx
rw [at_prime.is_unit_mk'_iff] at hx ⊢
exact fun hr => hx ((set_like.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Mario Carneiro, Johan Commelin, Amelia Livingston, Anne Baanen
-/
-import Mathbin.RingTheory.Ideal.LocalRing
-import Mathbin.RingTheory.Localization.Ideal
+import RingTheory.Ideal.LocalRing
+import RingTheory.Localization.Ideal
#align_import ring_theory.localization.at_prime from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -50,7 +50,7 @@ namespace Ideal
def primeCompl : Submonoid R where
carrier := (Iᶜ : Set R)
one_mem' := by convert I.ne_top_iff_one.1 hp.1 <;> rfl
- mul_mem' x y hnx hny hxy := Or.cases_on (hp.mem_or_mem hxy) hnx hny
+ hMul_mem' x y hnx hny hxy := Or.cases_on (hp.mem_or_mem hxy) hnx hny
#align ideal.prime_compl Ideal.primeCompl
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2018 Kenny Lau. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Mario Carneiro, Johan Commelin, Amelia Livingston, Anne Baanen
-
-! This file was ported from Lean 3 source module ring_theory.localization.at_prime
-! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Ideal.LocalRing
import Mathbin.RingTheory.Localization.Ideal
+#align_import ring_theory.localization.at_prime from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
+
/-!
# Localizations of commutative rings at the complement of a prime ideal
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -46,8 +46,6 @@ section AtPrime
variable (I : Ideal R) [hp : I.IsPrime]
-include hp
-
namespace Ideal
#print Ideal.primeCompl /-
@@ -59,9 +57,11 @@ def primeCompl : Submonoid R where
#align ideal.prime_compl Ideal.primeCompl
-/
+#print Ideal.primeCompl_le_nonZeroDivisors /-
theorem primeCompl_le_nonZeroDivisors [NoZeroDivisors R] : I.primeCompl ≤ nonZeroDivisors R :=
le_nonZeroDivisors_of_noZeroDivisors <| not_not_intro I.zero_mem
#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisors
+-/
end Ideal
@@ -85,6 +85,7 @@ protected abbrev Localization.AtPrime :=
namespace IsLocalization
+#print IsLocalization.AtPrime.Nontrivial /-
theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze =>
by
@@ -93,9 +94,11 @@ theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
have htz : (t : R) = 0 := by simpa using ht.symm
exact t.2 (htz.symm ▸ I.zero_mem : ↑t ∈ I)
#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivial
+-/
attribute [local instance] at_prime.nontrivial
+#print IsLocalization.AtPrime.localRing /-
theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
LocalRing.of_nonunits_add
(by
@@ -122,15 +125,18 @@ theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
(I.mul_mem_right _
(I.add_mem (I.mul_mem_right _ <| this hx) (I.mul_mem_right _ <| this hy))))
#align is_localization.at_prime.local_ring IsLocalization.AtPrime.localRing
+-/
end IsLocalization
namespace Localization
+#print Localization.AtPrime.localRing /-
/-- The localization of `R` at the complement of a prime ideal is a local ring. -/
instance AtPrime.localRing : LocalRing (Localization I.primeCompl) :=
IsLocalization.AtPrime.localRing (Localization I.primeCompl) I
#align localization.at_prime.local_ring Localization.AtPrime.localRing
+-/
end Localization
@@ -140,26 +146,29 @@ namespace IsLocalization
variable {A : Type _} [CommRing A] [IsDomain A]
+#print IsLocalization.isDomain_of_local_atPrime /-
/-- The localization of an integral domain at the complement of a prime ideal is an integral domain.
-/
instance isDomain_of_local_atPrime {P : Ideal A} (hp : P.IsPrime) :
IsDomain (Localization.AtPrime P) :=
isDomain_localization P.primeCompl_le_nonZeroDivisors
#align is_localization.is_domain_of_local_at_prime IsLocalization.isDomain_of_local_atPrime
+-/
namespace AtPrime
variable (I : Ideal R) [hI : I.IsPrime] [IsLocalization.AtPrime S I]
-include hI
-
+#print IsLocalization.AtPrime.isUnit_to_map_iff /-
theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.primeCompl :=
⟨fun h hx =>
(isPrime_of_isPrime_disjoint I.primeCompl S I hI disjoint_compl_left).ne_top <|
(Ideal.map (algebraMap R S) I).eq_top_of_isUnit_mem (Ideal.mem_map_of_mem _ hx) h,
fun h => map_units S ⟨x, h⟩⟩
#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iff
+-/
+#print IsLocalization.AtPrime.to_map_mem_maximal_iff /-
-- Can't use typeclasses to infer the `local_ring` instance, so use an `opt_param` instead
-- (since `local_ring` is a `Prop`, there should be no unification issues.)
theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
@@ -168,23 +177,30 @@ theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
simpa only [LocalRing.mem_maximalIdeal, mem_nonunits_iff, Classical.not_not] using
is_unit_to_map_iff S I x
#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iff
+-/
+#print IsLocalization.AtPrime.comap_maximalIdeal /-
theorem comap_maximalIdeal (h : LocalRing S := localRing S I) :
(LocalRing.maximalIdeal S).comap (algebraMap R S) = I :=
Ideal.ext fun x => by simpa only [Ideal.mem_comap] using to_map_mem_maximal_iff _ I x
#align is_localization.at_prime.comap_maximal_ideal IsLocalization.AtPrime.comap_maximalIdeal
+-/
+#print IsLocalization.AtPrime.isUnit_mk'_iff /-
theorem isUnit_mk'_iff (x : R) (y : I.primeCompl) : IsUnit (mk' S x y) ↔ x ∈ I.primeCompl :=
⟨fun h hx => mk'_mem_iff.mpr ((to_map_mem_maximal_iff S I x).mpr hx) h, fun h =>
isUnit_iff_exists_inv.mpr ⟨mk' S ↑y ⟨x, h⟩, mk'_mul_mk'_eq_one ⟨x, h⟩ y⟩⟩
#align is_localization.at_prime.is_unit_mk'_iff IsLocalization.AtPrime.isUnit_mk'_iff
+-/
+#print IsLocalization.AtPrime.mk'_mem_maximal_iff /-
theorem mk'_mem_maximal_iff (x : R) (y : I.primeCompl) (h : LocalRing S := localRing S I) :
mk' S x y ∈ LocalRing.maximalIdeal S ↔ x ∈ I :=
not_iff_not.mp <| by
simpa only [LocalRing.mem_maximalIdeal, mem_nonunits_iff, Classical.not_not] using
is_unit_mk'_iff S I x y
#align is_localization.at_prime.mk'_mem_maximal_iff IsLocalization.AtPrime.mk'_mem_maximal_iff
+-/
end AtPrime
@@ -198,10 +214,9 @@ attribute [local instance] Classical.propDecidable
variable (I : Ideal R) [hI : I.IsPrime]
-include hI
-
variable {I}
+#print Localization.AtPrime.comap_maximalIdeal /-
/-- The unique maximal ideal of the localization at `I.prime_compl` lies over the ideal `I`. -/
theorem AtPrime.comap_maximalIdeal :
Ideal.comap (algebraMap R (Localization.AtPrime I))
@@ -209,7 +224,9 @@ theorem AtPrime.comap_maximalIdeal :
I :=
AtPrime.comap_maximalIdeal _ _
#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdeal
+-/
+#print Localization.AtPrime.map_eq_maximalIdeal /-
/-- The image of `I` in the localization at `I.prime_compl` is a maximal ideal, and in particular
it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
theorem AtPrime.map_eq_maximalIdeal :
@@ -219,14 +236,18 @@ theorem AtPrime.map_eq_maximalIdeal :
convert congr_arg (Ideal.map _) at_prime.comap_maximal_ideal.symm
rw [map_comap I.prime_compl]
#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdeal
+-/
+#print Localization.le_comap_primeCompl_iff /-
theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
I.primeCompl ≤ J.primeCompl.comap f ↔ J.comap f ≤ I :=
⟨fun h x hx => by contrapose! hx; exact h hx, fun h x hx hfxJ => hx (h hfxJ)⟩
#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iff
+-/
variable (I)
+#print Localization.localRingHom /-
/-- For a ring hom `f : R →+* S` and a prime ideal `J` in `S`, the induced ring hom from the
localization of `R` at `J.comap f` to the localization of `S` at `J`.
@@ -237,12 +258,16 @@ noncomputable def localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (h
Localization.AtPrime I →+* Localization.AtPrime J :=
IsLocalization.map (Localization.AtPrime J) f (le_comap_primeCompl_iff.mpr (ge_of_eq hIJ))
#align localization.local_ring_hom Localization.localRingHom
+-/
+#print Localization.localRingHom_to_map /-
theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
(x : R) : localRingHom I J f hIJ (algebraMap _ _ x) = algebraMap _ _ (f x) :=
map_eq _ _
#align localization.local_ring_hom_to_map Localization.localRingHom_to_map
+-/
+#print Localization.localRingHom_mk' /-
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
localRingHom I J f hIJ (IsLocalization.mk' _ x y) =
@@ -250,7 +275,9 @@ theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I
(⟨f y, le_comap_primeCompl_iff.mpr (ge_of_eq hIJ) y.2⟩ : J.primeCompl) :=
map_mk' _ _ _
#align localization.local_ring_hom_mk' Localization.localRingHom_mk'
+-/
+#print Localization.isLocalRingHom_localRingHom /-
instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P)
(hIJ : I = J.comap f) : IsLocalRingHom (localRingHom I J f hIJ) :=
IsLocalRingHom.mk fun x hx =>
@@ -260,18 +287,24 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
rw [at_prime.is_unit_mk'_iff] at hx ⊢
exact fun hr => hx ((set_like.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
+-/
+#print Localization.localRingHom_unique /-
theorem localRingHom_unique (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
{j : Localization.AtPrime I →+* Localization.AtPrime J}
(hj : ∀ x : R, j (algebraMap _ _ x) = algebraMap _ _ (f x)) : localRingHom I J f hIJ = j :=
map_unique _ _ hj
#align localization.local_ring_hom_unique Localization.localRingHom_unique
+-/
+#print Localization.localRingHom_id /-
@[simp]
theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).symm = RingHom.id _ :=
localRingHom_unique _ _ _ _ fun x => rfl
#align localization.local_ring_hom_id Localization.localRingHom_id
+-/
+#print Localization.localRingHom_comp /-
@[simp]
theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
[hK : K.IsPrime] (f : R →+* S) (hIJ : I = J.comap f) (g : S →+* P) (hJK : J = K.comap g) :
@@ -280,6 +313,7 @@ theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.Is
localRingHom_unique _ _ _ _ fun r => by
simp only [Function.comp_apply, RingHom.coe_comp, local_ring_hom_to_map]
#align localization.local_ring_hom_comp Localization.localRingHom_comp
+-/
end Localization
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -88,7 +88,7 @@ namespace IsLocalization
theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze =>
by
- rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
+ rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
obtain ⟨t, ht⟩ := (eq_iff_exists I.prime_compl S).1 hze
have htz : (t : R) = 0 := by simpa using ht.symm
exact t.2 (htz.symm ▸ I.zero_mem : ↑t ∈ I)
@@ -108,10 +108,10 @@ theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
rcases mk'_surjective I.prime_compl x with ⟨rx, sx, hrx⟩
rcases mk'_surjective I.prime_compl y with ⟨ry, sy, hry⟩
rcases mk'_surjective I.prime_compl z with ⟨rz, sz, hrz⟩
- rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.prime_compl.one_mem] at hxyz
- rw [← hrx] at hx; rw [← hry] at hy
+ rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.prime_compl.one_mem] at hxyz
+ rw [← hrx] at hx ; rw [← hry] at hy
obtain ⟨t, ht⟩ := IsLocalization.eq.1 hxyz
- simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
+ simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
suffices : ↑t * (↑sx * ↑sy * ↑sz) ∈ I;
exact
not_or_of_not (mt hp.mem_or_mem <| not_or_of_not sx.2 sy.2) sz.2
@@ -256,8 +256,8 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
IsLocalRingHom.mk fun x hx =>
by
rcases IsLocalization.mk'_surjective I.prime_compl x with ⟨r, s, rfl⟩
- rw [local_ring_hom_mk'] at hx
- rw [at_prime.is_unit_mk'_iff] at hx⊢
+ rw [local_ring_hom_mk'] at hx
+ rw [at_prime.is_unit_mk'_iff] at hx ⊢
exact fun hr => hx ((set_like.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -59,12 +59,6 @@ def primeCompl : Submonoid R where
#align ideal.prime_compl Ideal.primeCompl
-/
-/- warning: ideal.prime_compl_le_non_zero_divisors -> Ideal.primeCompl_le_nonZeroDivisors is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))], LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hp) (nonZeroDivisors.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : NoZeroDivisors.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1))], LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hp) (nonZeroDivisors.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisorsₓ'. -/
theorem primeCompl_le_nonZeroDivisors [NoZeroDivisors R] : I.primeCompl ≤ nonZeroDivisors R :=
le_nonZeroDivisors_of_noZeroDivisors <| not_not_intro I.zero_mem
#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisors
@@ -91,12 +85,6 @@ protected abbrev Localization.AtPrime :=
namespace IsLocalization
-/- warning: is_localization.at_prime.nontrivial -> IsLocalization.AtPrime.Nontrivial is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hp], Nontrivial.{u2} S
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hp : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hp], Nontrivial.{u1} S
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivialₓ'. -/
theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze =>
by
@@ -108,12 +96,6 @@ theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
attribute [local instance] at_prime.nontrivial
-/- warning: is_localization.at_prime.local_ring -> IsLocalization.AtPrime.localRing is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hp], LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hp : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hp], LocalRing.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.local_ring IsLocalization.AtPrime.localRingₓ'. -/
theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
LocalRing.of_nonunits_add
(by
@@ -145,12 +127,6 @@ end IsLocalization
namespace Localization
-/- warning: localization.at_prime.local_ring -> Localization.AtPrime.localRing is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], LocalRing.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hp)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], LocalRing.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hp)))
-Case conversion may be inaccurate. Consider using '#align localization.at_prime.local_ring Localization.AtPrime.localRingₓ'. -/
/-- The localization of `R` at the complement of a prime ideal is a local ring. -/
instance AtPrime.localRing : LocalRing (Localization I.primeCompl) :=
IsLocalization.AtPrime.localRing (Localization I.primeCompl) I
@@ -164,12 +140,6 @@ namespace IsLocalization
variable {A : Type _} [CommRing A] [IsDomain A]
-/- warning: is_localization.is_domain_of_local_at_prime -> IsLocalization.isDomain_of_local_atPrime is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] {P : Ideal.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))} (hp : Ideal.IsPrime.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5)) P), IsDomain.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Ring.toSemiring.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (CommRing.toRing.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Localization.commRing.{u1} A _inst_5 (Ideal.primeCompl.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp))))
-but is expected to have type
- forall {A : Type.{u1}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))] {P : Ideal.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))} (hp : Ideal.IsPrime.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) P), IsDomain.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) (Ideal.primeCompl.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp)))
-Case conversion may be inaccurate. Consider using '#align is_localization.is_domain_of_local_at_prime IsLocalization.isDomain_of_local_atPrimeₓ'. -/
/-- The localization of an integral domain at the complement of a prime ideal is an integral domain.
-/
instance isDomain_of_local_atPrime {P : Ideal A} (hp : P.IsPrime) :
@@ -183,12 +153,6 @@ variable (I : Ideal R) [hI : I.IsPrime] [IsLocalization.AtPrime S I]
include hI
-/- warning: is_localization.at_prime.is_unit_to_map_iff -> IsLocalization.AtPrime.isUnit_to_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} S (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (MonoidWithZero.toMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iffₓ'. -/
theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.primeCompl :=
⟨fun h hx =>
(isPrime_of_isPrime_disjoint I.primeCompl S I hI disjoint_compl_left).ne_top <|
@@ -196,12 +160,6 @@ theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.prim
fun h => map_units S ⟨x, h⟩⟩
#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iff
-/- warning: is_localization.at_prime.to_map_mem_maximal_iff -> IsLocalization.AtPrime.to_map_mem_maximal_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.Mem.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.hasMem.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.Mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.hasMem.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iffₓ'. -/
-- Can't use typeclasses to infer the `local_ring` instance, so use an `opt_param` instead
-- (since `local_ring` is a `Prop`, there should be no unification issues.)
theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
@@ -211,34 +169,16 @@ theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
is_unit_to_map_iff S I x
#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iff
-/- warning: is_localization.at_prime.comap_maximal_ideal -> IsLocalization.AtPrime.comap_maximalIdeal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S _inst_2) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) I
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) I
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.comap_maximal_ideal IsLocalization.AtPrime.comap_maximalIdealₓ'. -/
theorem comap_maximalIdeal (h : LocalRing S := localRing S I) :
(LocalRing.maximalIdeal S).comap (algebraMap R S) = I :=
Ideal.ext fun x => by simpa only [Ideal.mem_comap] using to_map_mem_maximal_iff _ I x
#align is_localization.at_prime.comap_maximal_ideal IsLocalization.AtPrime.comap_maximalIdeal
-/- warning: is_localization.at_prime.is_unit_mk'_iff -> IsLocalization.AtPrime.isUnit_mk'_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Iff (IsUnit.{u2} S (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (IsLocalization.mk'.{u1, u2} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y)) (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hI : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))), Iff (IsUnit.{u1} S (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (IsLocalization.mk'.{u2, u1} R _inst_1 (Ideal.primeCompl.{u2} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y)) (Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.is_unit_mk'_iff IsLocalization.AtPrime.isUnit_mk'_iffₓ'. -/
theorem isUnit_mk'_iff (x : R) (y : I.primeCompl) : IsUnit (mk' S x y) ↔ x ∈ I.primeCompl :=
⟨fun h hx => mk'_mem_iff.mpr ((to_map_mem_maximal_iff S I x).mpr hx) h, fun h =>
isUnit_iff_exists_inv.mpr ⟨mk' S ↑y ⟨x, h⟩, mk'_mul_mk'_eq_one ⟨x, h⟩ y⟩⟩
#align is_localization.at_prime.is_unit_mk'_iff IsLocalization.AtPrime.isUnit_mk'_iff
-/- warning: is_localization.at_prime.mk'_mem_maximal_iff -> IsLocalization.AtPrime.mk'_mem_maximal_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.Mem.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.hasMem.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (IsLocalization.mk'.{u1, u2} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.Mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.hasMem.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hI : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))) (h : optParam.{0} (LocalRing.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)))) (IsLocalization.mk'.{u2, u1} R _inst_1 (Ideal.primeCompl.{u2} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y) (LocalRing.maximalIdeal.{u1} S _inst_2 h)) (Membership.mem.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) R (Submodule.setLike.{u2, u2} R R (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) x I)
-Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.mk'_mem_maximal_iff IsLocalization.AtPrime.mk'_mem_maximal_iffₓ'. -/
theorem mk'_mem_maximal_iff (x : R) (y : I.primeCompl) (h : LocalRing S := localRing S I) :
mk' S x y ∈ LocalRing.maximalIdeal S ↔ x ∈ I :=
not_iff_not.mp <| by
@@ -262,12 +202,6 @@ include hI
variable {I}
-/- warning: localization.at_prime.comap_maximal_ideal -> Localization.AtPrime.comap_maximalIdeal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.ringHomClass.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))) I
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))) I
-Case conversion may be inaccurate. Consider using '#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdealₓ'. -/
/-- The unique maximal ideal of the localization at `I.prime_compl` lies over the ideal `I`. -/
theorem AtPrime.comap_maximalIdeal :
Ideal.comap (algebraMap R (Localization.AtPrime I))
@@ -276,12 +210,6 @@ theorem AtPrime.comap_maximalIdeal :
AtPrime.comap_maximalIdeal _ _
#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdeal
-/- warning: localization.at_prime.map_eq_maximal_ideal -> Localization.AtPrime.map_eq_maximalIdeal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Ideal.map.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.ringHomClass.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) I) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Ideal.map.{u1, u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) I) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))
-Case conversion may be inaccurate. Consider using '#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdealₓ'. -/
/-- The image of `I` in the localization at `I.prime_compl` is a maximal ideal, and in particular
it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
theorem AtPrime.map_eq_maximalIdeal :
@@ -292,12 +220,6 @@ theorem AtPrime.map_eq_maximalIdeal :
rw [map_comap I.prime_compl]
#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdeal
-/- warning: localization.le_comap_prime_compl_iff -> Localization.le_comap_primeCompl_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)} [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] {f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))}, Iff (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)} [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] {f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))}, Iff (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I)
-Case conversion may be inaccurate. Consider using '#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iffₓ'. -/
theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
I.primeCompl ≤ J.primeCompl.comap f ↔ J.comap f ≤ I :=
⟨fun h x hx => by contrapose! hx; exact h hx, fun h x hx hfxJ => hx (h hfxJ)⟩
@@ -305,12 +227,6 @@ theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
variable (I)
-/- warning: localization.local_ring_hom -> Localization.localRingHom is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))), (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) -> (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))), (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) -> (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom Localization.localRingHomₓ'. -/
/-- For a ring hom `f : R →+* S` and a prime ideal `J` in `S`, the induced ring hom from the
localization of `R` at `J.comap f` to the localization of `S` at `J`.
@@ -322,17 +238,11 @@ noncomputable def localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (h
IsLocalization.map (Localization.AtPrime J) f (le_comap_primeCompl_iff.mpr (ge_of_eq hIJ))
#align localization.local_ring_hom Localization.localRingHom
-/- warning: localization.local_ring_hom_to_map -> Localization.localRingHom_to_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_to_map Localization.localRingHom_to_mapₓ'. -/
theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
(x : R) : localRingHom I J f hIJ (algebraMap _ _ x) = algebraMap _ _ (f x) :=
map_eq _ _
#align localization.local_ring_hom_to_map Localization.localRingHom_to_map
-/- warning: localization.local_ring_hom_mk' -> Localization.localRingHom_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_mk' Localization.localRingHom_mk'ₓ'. -/
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
localRingHom I J f hIJ (IsLocalization.mk' _ x y) =
@@ -341,12 +251,6 @@ theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I
map_mk' _ _ _
#align localization.local_ring_hom_mk' Localization.localRingHom_mk'
-/- warning: localization.is_local_ring_hom_local_ring_hom -> Localization.isLocalRingHom_localRingHom is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)), IsLocalRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)), IsLocalRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ)
-Case conversion may be inaccurate. Consider using '#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHomₓ'. -/
instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P)
(hIJ : I = J.comap f) : IsLocalRingHom (localRingHom I J f hIJ) :=
IsLocalRingHom.mk fun x hx =>
@@ -357,29 +261,17 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
exact fun hr => hx ((set_like.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
-/- warning: localization.local_ring_hom_unique -> Localization.localRingHom_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_unique Localization.localRingHom_uniqueₓ'. -/
theorem localRingHom_unique (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
{j : Localization.AtPrime I →+* Localization.AtPrime J}
(hj : ∀ x : R, j (algebraMap _ _ x) = algebraMap _ _ (f x)) : localRingHom I J f hIJ = j :=
map_unique _ _ hj
#align localization.local_ring_hom_unique Localization.localRingHom_unique
-/- warning: localization.local_ring_hom_id -> Localization.localRingHom_id is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (RingHom.{u1, u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (Localization.localRingHom.{u1, u1} R _inst_1 R _inst_1 I hI I hI (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Eq.symm.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R R (RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.ringHomClass.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) I) I (Ideal.comap_id.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I))) (RingHom.id.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (RingHom.{u1, u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (Localization.localRingHom.{u1, u1} R _inst_1 R _inst_1 I hI I hI (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Eq.symm.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R R (RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.instRingHomClassRingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) I) I (Ideal.comap_id.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I))) (RingHom.id.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_id Localization.localRingHom_idₓ'. -/
@[simp]
theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).symm = RingHom.id _ :=
localRingHom_unique _ _ _ _ fun x => rfl
#align localization.local_ring_hom_id Localization.localRingHom_id
-/- warning: localization.local_ring_hom_comp -> Localization.localRingHom_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_comp Localization.localRingHom_compₓ'. -/
@[simp]
theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
[hK : K.IsPrime] (f : R →+* S) (hIJ : I = J.comap f) (g : S →+* P) (hJK : J = K.comap g) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -127,11 +127,10 @@ theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
rcases mk'_surjective I.prime_compl y with ⟨ry, sy, hry⟩
rcases mk'_surjective I.prime_compl z with ⟨rz, sz, hrz⟩
rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.prime_compl.one_mem] at hxyz
- rw [← hrx] at hx
- rw [← hry] at hy
+ rw [← hrx] at hx; rw [← hry] at hy
obtain ⟨t, ht⟩ := IsLocalization.eq.1 hxyz
simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
- suffices : ↑t * (↑sx * ↑sy * ↑sz) ∈ I
+ suffices : ↑t * (↑sx * ↑sy * ↑sz) ∈ I;
exact
not_or_of_not (mt hp.mem_or_mem <| not_or_of_not sx.2 sy.2) sz.2
(hp.mem_or_mem <| (hp.mem_or_mem this).resolve_left t.2)
@@ -301,9 +300,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iffₓ'. -/
theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
I.primeCompl ≤ J.primeCompl.comap f ↔ J.comap f ≤ I :=
- ⟨fun h x hx => by
- contrapose! hx
- exact h hx, fun h x hx hfxJ => hx (h hfxJ)⟩
+ ⟨fun h x hx => by contrapose! hx; exact h hx, fun h x hx hfxJ => hx (h hfxJ)⟩
#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iff
variable (I)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -326,10 +326,7 @@ noncomputable def localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (h
#align localization.local_ring_hom Localization.localRingHom
/- warning: localization.local_ring_hom_to_map -> Localization.localRingHom_to_map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_to_map Localization.localRingHom_to_mapₓ'. -/
theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
(x : R) : localRingHom I J f hIJ (algebraMap _ _ x) = algebraMap _ _ (f x) :=
@@ -337,10 +334,7 @@ theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ
#align localization.local_ring_hom_to_map Localization.localRingHom_to_map
/- warning: localization.local_ring_hom_mk' -> Localization.localRingHom_mk' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4)) (Localization.isLocalization.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.Mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.setLike.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Localization.isLocalization.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_mk' Localization.localRingHom_mk'ₓ'. -/
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
@@ -367,10 +361,7 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
/- warning: localization.local_ring_hom_unique -> Localization.localRingHom_unique is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) j (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) j (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_unique Localization.localRingHom_uniqueₓ'. -/
theorem localRingHom_unique (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
{j : Localization.AtPrime I →+* Localization.AtPrime J}
@@ -390,10 +381,7 @@ theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).sym
#align localization.local_ring_hom_id Localization.localRingHom_id
/- warning: localization.local_ring_hom_comp -> Localization.localRingHom_comp is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {S : Type.{u3}} [_inst_5 : CommSemiring.{u3} S] (J : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) [hJ : Ideal.IsPrime.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5) J] (K : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hK : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) K] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J)) (g : RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hJK : Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)), Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI K hK (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) hIJ)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (fun (_a : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f _a) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K) hJK)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap_comap.{u1, u3, u2} R S (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) P (CommSemiring.toSemiring.{u2} P _inst_4) K f g))) (rfl.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)))))) (RingHom.comp.{u1, u3, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (CommSemiring.toSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.commSemiring.{u3} S _inst_5 (Ideal.primeCompl.{u3} S _inst_5 J hJ)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK)))) (Localization.localRingHom.{u3, u2} S _inst_5 P _inst_4 J hJ K hK g hJK) (Localization.localRingHom.{u1, u3} R _inst_1 S _inst_5 I hI J hJ f hIJ))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {S : Type.{u3}} [_inst_5 : CommSemiring.{u3} S] (J : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) [hJ : Ideal.IsPrime.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5) J] (K : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hK : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) K] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J)) (g : RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hJK : Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)), Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI K hK (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) hIJ)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (fun (_a : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f _a) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K) hJK)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap_comap.{u2, u1, u3} R S (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) P (CommSemiring.toSemiring.{u2} P _inst_4) K f g))) (Eq.refl.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)))))) (RingHom.comp.{u1, u3, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (CommSemiring.toSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u3} S _inst_5 (Ideal.primeCompl.{u3} S _inst_5 J hJ)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK)))) (Localization.localRingHom.{u3, u2} S _inst_5 P _inst_4 J hJ K hK g hJK) (Localization.localRingHom.{u1, u3} R _inst_1 S _inst_5 I hI J hJ f hIJ))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_comp Localization.localRingHom_compₓ'. -/
@[simp]
theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -340,7 +340,7 @@ theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4)) (Localization.isLocalization.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.Mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.setLike.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Localization.isLocalization.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_mk' Localization.localRingHom_mk'ₓ'. -/
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Mario Carneiro, Johan Commelin, Amelia Livingston, Anne Baanen
! This file was ported from Lean 3 source module ring_theory.localization.at_prime
-! leanprover-community/mathlib commit b86c528d08a52a1fdb50d999232408e1c7e85d7d
+! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.RingTheory.Localization.Ideal
/-!
# Localizations of commutative rings at the complement of a prime ideal
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Main definitions
* `is_localization.at_prime (I : ideal R) [is_prime I] (S : Type*)` expresses that `S` is a
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -185,7 +185,7 @@ include hI
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} S (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (MonoidWithZero.toMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (MonoidWithZero.toMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iffₓ'. -/
theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.primeCompl :=
⟨fun h hx =>
@@ -198,7 +198,7 @@ theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.prim
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.Mem.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.hasMem.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.Mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.hasMem.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iffₓ'. -/
-- Can't use typeclasses to infer the `local_ring` instance, so use an `opt_param` instead
-- (since `local_ring` is a `Prop`, there should be no unification issues.)
@@ -326,7 +326,7 @@ noncomputable def localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (h
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_to_map Localization.localRingHom_to_mapₓ'. -/
theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
(x : R) : localRingHom I J f hIJ (algebraMap _ _ x) = algebraMap _ _ (f x) :=
@@ -337,7 +337,7 @@ theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4)) (Localization.isLocalization.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.Mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.setLike.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_mk' Localization.localRingHom_mk'ₓ'. -/
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
@@ -367,7 +367,7 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) j (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) j (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) j (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_unique Localization.localRingHom_uniqueₓ'. -/
theorem localRingHom_unique (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
{j : Localization.AtPrime I →+* Localization.AtPrime J}
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -47,13 +47,21 @@ include hp
namespace Ideal
+#print Ideal.primeCompl /-
/-- The complement of a prime ideal `I ⊆ R` is a submonoid of `R`. -/
def primeCompl : Submonoid R where
carrier := (Iᶜ : Set R)
one_mem' := by convert I.ne_top_iff_one.1 hp.1 <;> rfl
mul_mem' x y hnx hny hxy := Or.cases_on (hp.mem_or_mem hxy) hnx hny
#align ideal.prime_compl Ideal.primeCompl
+-/
+/- warning: ideal.prime_compl_le_non_zero_divisors -> Ideal.primeCompl_le_nonZeroDivisors is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : NoZeroDivisors.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))], LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hp) (nonZeroDivisors.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : NoZeroDivisors.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1))], LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hp) (nonZeroDivisors.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))
+Case conversion may be inaccurate. Consider using '#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisorsₓ'. -/
theorem primeCompl_le_nonZeroDivisors [NoZeroDivisors R] : I.primeCompl ≤ nonZeroDivisors R :=
le_nonZeroDivisors_of_noZeroDivisors <| not_not_intro I.zero_mem
#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisors
@@ -62,31 +70,47 @@ end Ideal
variable (S)
+#print IsLocalization.AtPrime /-
/-- Given a prime ideal `P`, the typeclass `is_localization.at_prime S P` states that `S` is
isomorphic to the localization of `R` at the complement of `P`. -/
protected abbrev IsLocalization.AtPrime :=
IsLocalization I.primeCompl S
#align is_localization.at_prime IsLocalization.AtPrime
+-/
+#print Localization.AtPrime /-
/-- Given a prime ideal `P`, `localization.at_prime S P` is a localization of
`R` at the complement of `P`, as a quotient type. -/
protected abbrev Localization.AtPrime :=
Localization I.primeCompl
#align localization.at_prime Localization.AtPrime
+-/
namespace IsLocalization
-theorem AtPrime.nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
+/- warning: is_localization.at_prime.nontrivial -> IsLocalization.AtPrime.Nontrivial is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hp], Nontrivial.{u2} S
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hp : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hp], Nontrivial.{u1} S
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivialₓ'. -/
+theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze =>
by
rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
obtain ⟨t, ht⟩ := (eq_iff_exists I.prime_compl S).1 hze
have htz : (t : R) = 0 := by simpa using ht.symm
exact t.2 (htz.symm ▸ I.zero_mem : ↑t ∈ I)
-#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.nontrivial
+#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivial
attribute [local instance] at_prime.nontrivial
+/- warning: is_localization.at_prime.local_ring -> IsLocalization.AtPrime.localRing is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hp], LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hp : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_5 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hp], LocalRing.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.local_ring IsLocalization.AtPrime.localRingₓ'. -/
theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
LocalRing.of_nonunits_add
(by
@@ -119,6 +143,12 @@ end IsLocalization
namespace Localization
+/- warning: localization.at_prime.local_ring -> Localization.AtPrime.localRing is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], LocalRing.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hp)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hp : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], LocalRing.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hp)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hp)))
+Case conversion may be inaccurate. Consider using '#align localization.at_prime.local_ring Localization.AtPrime.localRingₓ'. -/
/-- The localization of `R` at the complement of a prime ideal is a local ring. -/
instance AtPrime.localRing : LocalRing (Localization I.primeCompl) :=
IsLocalization.AtPrime.localRing (Localization I.primeCompl) I
@@ -132,6 +162,12 @@ namespace IsLocalization
variable {A : Type _} [CommRing A] [IsDomain A]
+/- warning: is_localization.is_domain_of_local_at_prime -> IsLocalization.isDomain_of_local_atPrime is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] {P : Ideal.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))} (hp : Ideal.IsPrime.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5)) P), IsDomain.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Ring.toSemiring.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (CommRing.toRing.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Localization.commRing.{u1} A _inst_5 (Ideal.primeCompl.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp))))
+but is expected to have type
+ forall {A : Type.{u1}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))] {P : Ideal.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))} (hp : Ideal.IsPrime.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) P), IsDomain.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) (Ideal.primeCompl.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5) P hp)))
+Case conversion may be inaccurate. Consider using '#align is_localization.is_domain_of_local_at_prime IsLocalization.isDomain_of_local_atPrimeₓ'. -/
/-- The localization of an integral domain at the complement of a prime ideal is an integral domain.
-/
instance isDomain_of_local_atPrime {P : Ideal A} (hp : P.IsPrime) :
@@ -145,6 +181,12 @@ variable (I : Ideal R) [hI : I.IsPrime] [IsLocalization.AtPrime S I]
include hI
+/- warning: is_localization.at_prime.is_unit_to_map_iff -> IsLocalization.AtPrime.isUnit_to_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} S (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R), Iff (IsUnit.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (MonoidWithZero.toMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x)) (Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iffₓ'. -/
theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.primeCompl :=
⟨fun h hx =>
(isPrime_of_isPrime_disjoint I.primeCompl S I hI disjoint_compl_left).ne_top <|
@@ -152,6 +194,12 @@ theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.prim
fun h => map_units S ⟨x, h⟩⟩
#align is_localization.at_prime.is_unit_to_map_iff IsLocalization.AtPrime.isUnit_to_map_iff
+/- warning: is_localization.at_prime.to_map_mem_maximal_iff -> IsLocalization.AtPrime.to_map_mem_maximal_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.Mem.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.hasMem.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.Mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.hasMem.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) x) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iffₓ'. -/
-- Can't use typeclasses to infer the `local_ring` instance, so use an `opt_param` instead
-- (since `local_ring` is a `Prop`, there should be no unification issues.)
theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
@@ -161,16 +209,34 @@ theorem to_map_mem_maximal_iff (x : R) (h : LocalRing S := localRing S I) :
is_unit_to_map_iff S I x
#align is_localization.at_prime.to_map_mem_maximal_iff IsLocalization.AtPrime.to_map_mem_maximal_iff
+/- warning: is_localization.at_prime.comap_maximal_ideal -> IsLocalization.AtPrime.comap_maximalIdeal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S _inst_2) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) I
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (algebraMap.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2) _inst_3) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) I
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.comap_maximal_ideal IsLocalization.AtPrime.comap_maximalIdealₓ'. -/
theorem comap_maximalIdeal (h : LocalRing S := localRing S I) :
(LocalRing.maximalIdeal S).comap (algebraMap R S) = I :=
Ideal.ext fun x => by simpa only [Ideal.mem_comap] using to_map_mem_maximal_iff _ I x
#align is_localization.at_prime.comap_maximal_ideal IsLocalization.AtPrime.comap_maximalIdeal
+/- warning: is_localization.at_prime.is_unit_mk'_iff -> IsLocalization.AtPrime.isUnit_mk'_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Iff (IsUnit.{u2} S (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (IsLocalization.mk'.{u1, u2} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y)) (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hI : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))), Iff (IsUnit.{u1} S (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (IsLocalization.mk'.{u2, u1} R _inst_1 (Ideal.primeCompl.{u2} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y)) (Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.is_unit_mk'_iff IsLocalization.AtPrime.isUnit_mk'_iffₓ'. -/
theorem isUnit_mk'_iff (x : R) (y : I.primeCompl) : IsUnit (mk' S x y) ↔ x ∈ I.primeCompl :=
⟨fun h hx => mk'_mem_iff.mpr ((to_map_mem_maximal_iff S I x).mpr hx) h, fun h =>
isUnit_iff_exists_inv.mpr ⟨mk' S ↑y ⟨x, h⟩, mk'_mul_mk'_eq_one ⟨x, h⟩ y⟩⟩
#align is_localization.at_prime.is_unit_mk'_iff IsLocalization.AtPrime.isUnit_mk'_iff
+/- warning: is_localization.at_prime.mk'_mem_maximal_iff -> IsLocalization.AtPrime.mk'_mem_maximal_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (S : Type.{u2}) [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u1, u2} R S _inst_1 (CommSemiring.toSemiring.{u2} S _inst_2)] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (h : optParam.{0} (LocalRing.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.Mem.{u2, u2} S (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (SetLike.hasMem.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (IsLocalization.mk'.{u1, u2} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y) (LocalRing.maximalIdeal.{u2} S _inst_2 h)) (Membership.Mem.{u1, u1} R (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (SetLike.hasMem.{u1, u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) R (Submodule.setLike.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) x I)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] (S : Type.{u1}) [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u2, u1} R S _inst_1 (CommSemiring.toSemiring.{u1} S _inst_2)] (I : Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) [hI : Ideal.IsPrime.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1) I] [_inst_7 : IsLocalization.AtPrime.{u2, u1} R _inst_1 S _inst_2 _inst_3 I hI] (x : R) (y : Subtype.{succ u2} R (fun (x : R) => Membership.mem.{u2, u2} R (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) x (Ideal.primeCompl.{u2} R _inst_1 I hI))) (h : optParam.{0} (LocalRing.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) (IsLocalization.AtPrime.localRing.{u1, u2} R _inst_1 S _inst_2 _inst_3 I hI _inst_7)), Iff (Membership.mem.{u1, u1} S (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) (SetLike.instMembership.{u1, u1} (Ideal.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)) S (Submodule.setLike.{u1, u1} S S (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)))) (Semiring.toModule.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2)))) (IsLocalization.mk'.{u2, u1} R _inst_1 (Ideal.primeCompl.{u2} R _inst_1 I hI) S _inst_2 _inst_3 _inst_7 x y) (LocalRing.maximalIdeal.{u1} S _inst_2 h)) (Membership.mem.{u2, u2} R (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (SetLike.instMembership.{u2, u2} (Ideal.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) R (Submodule.setLike.{u2, u2} R R (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) x I)
+Case conversion may be inaccurate. Consider using '#align is_localization.at_prime.mk'_mem_maximal_iff IsLocalization.AtPrime.mk'_mem_maximal_iffₓ'. -/
theorem mk'_mem_maximal_iff (x : R) (y : I.primeCompl) (h : LocalRing S := localRing S I) :
mk' S x y ∈ LocalRing.maximalIdeal S ↔ x ∈ I :=
not_iff_not.mp <| by
@@ -194,6 +260,12 @@ include hI
variable {I}
+/- warning: localization.at_prime.comap_maximal_ideal -> Localization.AtPrime.comap_maximalIdeal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.ringHomClass.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))) I
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))) I
+Case conversion may be inaccurate. Consider using '#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdealₓ'. -/
/-- The unique maximal ideal of the localization at `I.prime_compl` lies over the ideal `I`. -/
theorem AtPrime.comap_maximalIdeal :
Ideal.comap (algebraMap R (Localization.AtPrime I))
@@ -202,6 +274,12 @@ theorem AtPrime.comap_maximalIdeal :
AtPrime.comap_maximalIdeal _ _
#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdeal
+/- warning: localization.at_prime.map_eq_maximal_ideal -> Localization.AtPrime.map_eq_maximalIdeal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Ideal.map.{u1, u1, u1} R (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.ringHomClass.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) I) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (Ideal.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Ideal.map.{u1, u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) I) (LocalRing.maximalIdeal.{u1} (Localization.{u1} R (CommSemiring.toCommMonoid.{u1} R _inst_1) (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.AtPrime.localRing.{u1} R _inst_1 I hI))
+Case conversion may be inaccurate. Consider using '#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdealₓ'. -/
/-- The image of `I` in the localization at `I.prime_compl` is a maximal ideal, and in particular
it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
theorem AtPrime.map_eq_maximalIdeal :
@@ -212,6 +290,12 @@ theorem AtPrime.map_eq_maximalIdeal :
rw [map_comap I.prime_compl]
#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdeal
+/- warning: localization.le_comap_prime_compl_iff -> Localization.le_comap_primeCompl_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)} [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] {f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))}, Iff (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] {I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)} [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)} [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] {f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))}, Iff (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I)
+Case conversion may be inaccurate. Consider using '#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iffₓ'. -/
theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
I.primeCompl ≤ J.primeCompl.comap f ↔ J.comap f ≤ I :=
⟨fun h x hx => by
@@ -221,6 +305,12 @@ theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
variable (I)
+/- warning: localization.local_ring_hom -> Localization.localRingHom is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))), (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) -> (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))), (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) -> (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom Localization.localRingHomₓ'. -/
/-- For a ring hom `f : R →+* S` and a prime ideal `J` in `S`, the induced ring hom from the
localization of `R` at `J.comap f` to the localization of `S` at `J`.
@@ -232,11 +322,23 @@ noncomputable def localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (h
IsLocalization.map (Localization.AtPrime J) f (le_comap_primeCompl_iff.mpr (ge_of_eq hIJ))
#align localization.local_ring_hom Localization.localRingHom
+/- warning: localization.local_ring_hom_to_map -> Localization.localRingHom_to_map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_to_map Localization.localRingHom_to_mapₓ'. -/
theorem localRingHom_to_map (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
(x : R) : localRingHom I J f hIJ (algebraMap _ _ x) = algebraMap _ _ (f x) :=
map_eq _ _
#align localization.local_ring_hom_to_map Localization.localRingHom_to_map
+/- warning: localization.local_ring_hom_mk' -> Localization.localRingHom_mk' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.isLocalization.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4)) (Localization.isLocalization.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.Mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.setLike.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.completeLattice.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toHasLe.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (Ideal.primeCompl.{u1} R _inst_1 I hI)) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) (x : R) (y : Subtype.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) (IsLocalization.mk'.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)) x y)) (IsLocalization.mk'.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Localization.instIsLocalizationLocalizationToCommMonoidInstCommSemiringLocalizationToCommMonoidInstAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoidId.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x) (Subtype.mk.{succ u2} P (fun (x : P) => Membership.mem.{u2, u2} P (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))))) P (Submonoid.instSetLikeSubmonoid.{u2} P (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) x (Ideal.primeCompl.{u2} P _inst_4 J hJ)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y)) (Iff.mpr (LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Preorder.toLE.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))) (Ideal.primeCompl.{u1} R _inst_1 I hI) (Submonoid.comap.{u1, u2, max u1 u2} R P (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroOneClass.toMulOneClass.{u2} P (NonAssocSemiring.toMulZeroOneClass.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) f (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (LE.le.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Preorder.toLE.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) I) (Localization.le_comap_primeCompl_iff.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f) (ge_of_eq.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (PartialOrder.toPreorder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.completeLattice.{u1, u1} R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J) hIJ) (Subtype.val.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Set.{u1} R) (Set.instMembershipSet.{u1} R) x (SetLike.coe.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Ideal.primeCompl.{u1} R _inst_1 I hI))) y) (Subtype.property.{succ u1} R (fun (x : R) => Membership.mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) R (Submonoid.instSetLikeSubmonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) x (Ideal.primeCompl.{u1} R _inst_1 I hI)) y))))
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_mk' Localization.localRingHom_mk'ₓ'. -/
theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f) (x : R)
(y : I.primeCompl) :
localRingHom I J f hIJ (IsLocalization.mk' _ x y) =
@@ -245,6 +347,12 @@ theorem localRingHom_mk' (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I
map_mk' _ _ _
#align localization.local_ring_hom_mk' Localization.localRingHom_mk'
+/- warning: localization.is_local_ring_hom_local_ring_hom -> Localization.isLocalRingHom_localRingHom is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)), IsLocalRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)), IsLocalRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ)
+Case conversion may be inaccurate. Consider using '#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHomₓ'. -/
instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P)
(hIJ : I = J.comap f) : IsLocalRingHom (localRingHom I J f hIJ) :=
IsLocalRingHom.mk fun x hx =>
@@ -255,17 +363,35 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
exact fun hr => hx ((set_like.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
+/- warning: localization.local_ring_hom_unique -> Localization.localRingHom_unique is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => (Localization.AtPrime.{u1} R _inst_1 I hI) -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) j (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (fun (_x : RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) => R -> (Localization.AtPrime.{u1} R _inst_1 I hI)) (RingHom.hasCoeToFun.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.algebra.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (fun (_x : RingHom.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) => P -> (Localization.AtPrime.{u2} P _inst_4 J hJ)) (RingHom.hasCoeToFun.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (algebraMap.{u2, u2} P (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.algebra.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) P _inst_4 (Algebra.id.{u2} P _inst_4))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (fun (_x : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) => R -> P) (RingHom.hasCoeToFun.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] (J : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hJ : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) J] (f : RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) f J)) {j : RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))}, (forall (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (fun (_x : Localization.AtPrime.{u1} R _inst_1 I hI) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Localization.AtPrime.{u1} R _inst_1 I hI) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) j (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Localization.AtPrime.{u1} R _inst_1 I hI) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))))) (algebraMap.{u1, u1} R (Localization.AtPrime.{u1} R _inst_1 I hI) _inst_1 (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI) R _inst_1 (Algebra.id.{u1} R _inst_1))) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) => Localization.AtPrime.{u2} P _inst_4 J hJ) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4)) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ)))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) (Localization.AtPrime.{u2} P _inst_4 J hJ) _inst_4 (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4 (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) x) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => P) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} P (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)))))) f x))) -> (Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 J hJ) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 J hJ))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI J hJ f hIJ) j)
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_unique Localization.localRingHom_uniqueₓ'. -/
theorem localRingHom_unique (J : Ideal P) [hJ : J.IsPrime] (f : R →+* P) (hIJ : I = J.comap f)
{j : Localization.AtPrime I →+* Localization.AtPrime J}
(hj : ∀ x : R, j (algebraMap _ _ x) = algebraMap _ _ (f x)) : localRingHom I J f hIJ = j :=
map_unique _ _ hj
#align localization.local_ring_hom_unique Localization.localRingHom_unique
+/- warning: localization.local_ring_hom_id -> Localization.localRingHom_id is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (RingHom.{u1, u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (Localization.localRingHom.{u1, u1} R _inst_1 R _inst_1 I hI I hI (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Eq.symm.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R R (RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.ringHomClass.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) I) I (Ideal.comap_id.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I))) (RingHom.id.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I], Eq.{succ u1} (RingHom.{u1, u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI))))) (Localization.localRingHom.{u1, u1} R _inst_1 R _inst_1 I hI I hI (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Eq.symm.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u1, u1} R R (RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.instRingHomClassRingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) I) I (Ideal.comap_id.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I))) (RingHom.id.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))))
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_id Localization.localRingHom_idₓ'. -/
@[simp]
theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).symm = RingHom.id _ :=
localRingHom_unique _ _ _ _ fun x => rfl
#align localization.local_ring_hom_id Localization.localRingHom_id
+/- warning: localization.local_ring_hom_comp -> Localization.localRingHom_comp is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {S : Type.{u3}} [_inst_5 : CommSemiring.{u3} S] (J : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) [hJ : Ideal.IsPrime.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5) J] (K : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hK : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) K] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J)) (g : RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hJK : Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)), Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI K hK (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) hIJ)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (fun (_a : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f _a) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K) hJK)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (rfl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.ringHomClass.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap_comap.{u1, u3, u2} R S (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) P (CommSemiring.toSemiring.{u2} P _inst_4) K f g))) (rfl.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.ringHomClass.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)))))) (RingHom.comp.{u1, u3, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.commSemiring.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (CommSemiring.toSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.commSemiring.{u3} S _inst_5 (Ideal.primeCompl.{u3} S _inst_5 J hJ)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.commSemiring.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK)))) (Localization.localRingHom.{u3, u2} S _inst_5 P _inst_4 J hJ K hK g hJK) (Localization.localRingHom.{u1, u3} R _inst_1 S _inst_5 I hI J hJ f hIJ))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] {P : Type.{u2}} [_inst_4 : CommSemiring.{u2} P] (I : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) [hI : Ideal.IsPrime.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1) I] {S : Type.{u3}} [_inst_5 : CommSemiring.{u3} S] (J : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) [hJ : Ideal.IsPrime.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5) J] (K : Ideal.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) [hK : Ideal.IsPrime.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4) K] (f : RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (hIJ : Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J)) (g : RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (hJK : Eq.{succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)), Eq.{max (succ u1) (succ u2)} (RingHom.{u1, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK))))) (Localization.localRingHom.{u1, u2} R _inst_1 P _inst_4 I hI K hK (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) I (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) hIJ)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u3} (Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) J (fun (_a : Ideal.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f _a) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f J) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K) hJK)) (Eq.mpr.{0} (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.ndrec.{0, succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u3 u2} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (fun (_a : Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) => Eq.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)) (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _a (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Eq.refl.{1} Prop (Eq.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u3, max u1 u3} R S (RingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) (RingHom.instRingHomClassRingHom.{u1, u3} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5))) f (Ideal.comap.{u3, u2, max u2 u3} S P (RingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u3, u2} S P (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) g K)) (Ideal.comap.{u1, u2, max u1 u2} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K))) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K) (Ideal.comap_comap.{u2, u1, u3} R S (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S _inst_5) P (CommSemiring.toSemiring.{u2} P _inst_4) K f g))) (Eq.refl.{succ u1} (Ideal.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.comap.{u1, u2, max u2 u1} R P (RingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} P _inst_4) (RingHom.instRingHomClassRingHom.{u1, u2} R P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4))) (RingHom.comp.{u1, u3, u2} R S P (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_5)) (Semiring.toNonAssocSemiring.{u2} P (CommSemiring.toSemiring.{u2} P _inst_4)) g f) K)))))) (RingHom.comp.{u1, u3, u2} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.AtPrime.{u2} P _inst_4 K hK) (Semiring.toNonAssocSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (CommSemiring.toSemiring.{u1} (Localization.AtPrime.{u1} R _inst_1 I hI) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} R _inst_1 (Ideal.primeCompl.{u1} R _inst_1 I hI)))) (Semiring.toNonAssocSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (CommSemiring.toSemiring.{u3} (Localization.AtPrime.{u3} S _inst_5 J hJ) (Localization.instCommSemiringLocalizationToCommMonoid.{u3} S _inst_5 (Ideal.primeCompl.{u3} S _inst_5 J hJ)))) (Semiring.toNonAssocSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (CommSemiring.toSemiring.{u2} (Localization.AtPrime.{u2} P _inst_4 K hK) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} P _inst_4 (Ideal.primeCompl.{u2} P _inst_4 K hK)))) (Localization.localRingHom.{u3, u2} S _inst_5 P _inst_4 J hJ K hK g hJK) (Localization.localRingHom.{u1, u3} R _inst_1 S _inst_5 I hI J hJ f hIJ))
+Case conversion may be inaccurate. Consider using '#align localization.local_ring_hom_comp Localization.localRingHom_compₓ'. -/
@[simp]
theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
[hK : K.IsPrime] (f : R →+* S) (hIJ : I = J.comap f) (g : S →+* P) (hJK : J = K.comap g) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -33,7 +33,6 @@ commutative ring, field of fractions
variable {R : Type*} [CommSemiring R] (M : Submonoid R) (S : Type*) [CommSemiring S]
-
variable [Algebra R S] {P : Type*} [CommSemiring P]
section AtPrime
@@ -182,7 +181,6 @@ open IsLocalization
attribute [local instance] Classical.propDecidable
variable (I : Ideal R) [hI : I.IsPrime]
-
variable {I}
/-- The unique maximal ideal of the localization at `I.primeCompl` lies over the ideal `I`. -/
Show that localization at minimal primes results in rings with only a single prime ideal, implying that every non-unit element is nilpotent.
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com> Co-authored-by: uniwuni <95649083+uniwuni@users.noreply.github.com>
@@ -132,6 +132,12 @@ namespace AtPrime
variable (I : Ideal R) [hI : I.IsPrime] [IsLocalization.AtPrime S I]
+/-- The prime ideals in the localization of a commutative ring at a prime ideal I are in
+order-preserving bijection with the prime ideals contained in I. -/
+def orderIsoOfPrime : { p : Ideal S // p.IsPrime } ≃o { p : Ideal R // p.IsPrime ∧ p ≤ I } :=
+ (IsLocalization.orderIsoOfPrime I.primeCompl S).trans <| .setCongr _ _ <| show setOf _ = setOf _
+ by ext; simp [Ideal.primeCompl, ← le_compl_iff_disjoint_left]
+
theorem isUnit_to_map_iff (x : R) : IsUnit ((algebraMap R S) x) ↔ x ∈ I.primeCompl :=
⟨fun h hx =>
(isPrime_of_isPrime_disjoint I.primeCompl S I hI disjoint_compl_left).ne_top <|
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -78,7 +78,7 @@ theorem AtPrime.Nontrivial [IsLocalization.AtPrime S P] : Nontrivial S :=
#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivial
theorem AtPrime.localRing [IsLocalization.AtPrime S P] : LocalRing S :=
- -- Porting Note : since I couldn't get local instance running, I just specify it manually
+ -- Porting note: since I couldn't get local instance running, I just specify it manually
letI := AtPrime.Nontrivial S P
LocalRing.of_nonunits_add
(by
@@ -184,7 +184,7 @@ theorem AtPrime.comap_maximalIdeal :
Ideal.comap (algebraMap R (Localization.AtPrime I))
(LocalRing.maximalIdeal (Localization I.primeCompl)) =
I :=
- -- Porting Note : need to provide full name
+ -- Porting note: need to provide full name
IsLocalization.AtPrime.comap_maximalIdeal _ _
#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdeal
@@ -194,9 +194,9 @@ theorem AtPrime.map_eq_maximalIdeal :
Ideal.map (algebraMap R (Localization.AtPrime I)) I =
LocalRing.maximalIdeal (Localization I.primeCompl) := by
convert congr_arg (Ideal.map (algebraMap R (Localization.AtPrime I)))
- -- Porting Note : `algebraMap R ...` can not be solve by unification
+ -- Porting note: `algebraMap R ...` can not be solve by unification
(AtPrime.comap_maximalIdeal (hI := hI)).symm
- -- Porting Note : can not find `hI`
+ -- Porting note: can not find `hI`
rw [map_comap I.primeCompl]
#align localization.at_prime.map_eq_maximal_ideal Localization.AtPrime.map_eq_maximalIdeal
@@ -254,7 +254,7 @@ theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).sym
localRingHom_unique _ _ _ _ fun _ => rfl
#align localization.local_ring_hom_id Localization.localRingHom_id
--- Porting note : simplifier won't pick up this lemma, so deleted @[simp]
+-- Porting note: simplifier won't pick up this lemma, so deleted @[simp]
theorem localRingHom_comp {S : Type*} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
[hK : K.IsPrime] (f : R →+* S) (hIJ : I = J.comap f) (g : S →+* P) (hJK : J = K.comap g) :
localRingHom I K (g.comp f) (by rw [hIJ, hJK, Ideal.comap_comap f g]) =
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -95,8 +95,7 @@ theorem AtPrime.localRing [IsLocalization.AtPrime S P] : LocalRing S :=
rw [← hry] at hy
obtain ⟨t, ht⟩ := IsLocalization.eq.1 hxyz
simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
- suffices : (t : R) * (sx * sy * sz) ∈ P
- exact
+ suffices (t : R) * (sx * sy * sz) ∈ P from
not_or_of_not (mt hp.mem_or_mem <| not_or_of_not sx.2 sy.2) sz.2
(hp.mem_or_mem <| (hp.mem_or_mem this).resolve_left t.2)
rw [← ht]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -13,7 +13,7 @@ import Mathlib.RingTheory.Localization.Ideal
## Main definitions
- * `IsLocalization.AtPrime (P : Ideal R) [IsPrime P] (S : Type _)` expresses that `S` is a
+ * `IsLocalization.AtPrime (P : Ideal R) [IsPrime P] (S : Type*)` expresses that `S` is a
localization at (the complement of) a prime ideal `P`, as an abbreviation of
`IsLocalization P.prime_compl S`
@@ -32,9 +32,9 @@ commutative ring, field of fractions
-/
-variable {R : Type _} [CommSemiring R] (M : Submonoid R) (S : Type _) [CommSemiring S]
+variable {R : Type*} [CommSemiring R] (M : Submonoid R) (S : Type*) [CommSemiring S]
-variable [Algebra R S] {P : Type _} [CommSemiring P]
+variable [Algebra R S] {P : Type*} [CommSemiring P]
section AtPrime
@@ -120,7 +120,7 @@ end AtPrime
namespace IsLocalization
-variable {A : Type _} [CommRing A] [IsDomain A]
+variable {A : Type*} [CommRing A] [IsDomain A]
/-- The localization of an integral domain at the complement of a prime ideal is an integral domain.
-/
@@ -256,7 +256,7 @@ theorem localRingHom_id : localRingHom I I (RingHom.id R) (Ideal.comap_id I).sym
#align localization.local_ring_hom_id Localization.localRingHom_id
-- Porting note : simplifier won't pick up this lemma, so deleted @[simp]
-theorem localRingHom_comp {S : Type _} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
+theorem localRingHom_comp {S : Type*} [CommSemiring S] (J : Ideal S) [hJ : J.IsPrime] (K : Ideal P)
[hK : K.IsPrime] (f : R →+* S) (hIJ : I = J.comap f) (g : S →+* P) (hJK : J = K.comap g) :
localRingHom I K (g.comp f) (by rw [hIJ, hJK, Ideal.comap_comap f g]) =
(localRingHom J K g hJK).comp (localRingHom I J f hIJ) :=
This commit changes the names of the prime ideal to I
to match the docstrings. It also fixes an instance of Localization.AtPrime
taking too many arguments in a docstring.
Co-authored-by: Calvin Lee <pounce@integraldoma.in>
@@ -13,9 +13,9 @@ import Mathlib.RingTheory.Localization.Ideal
## Main definitions
- * `IsLocalization.AtPrime (I : Ideal R) [IsPrime I] (S : Type _)` expresses that `S` is a
- localization at (the complement of) a prime ideal `I`, as an abbreviation of
- `IsLocalization I.prime_compl S`
+ * `IsLocalization.AtPrime (P : Ideal R) [IsPrime P] (S : Type _)` expresses that `S` is a
+ localization at (the complement of) a prime ideal `P`, as an abbreviation of
+ `IsLocalization P.prime_compl S`
## Main results
@@ -38,19 +38,19 @@ variable [Algebra R S] {P : Type _} [CommSemiring P]
section AtPrime
-variable (I : Ideal R) [hp : I.IsPrime]
+variable (P : Ideal R) [hp : P.IsPrime]
namespace Ideal
-/-- The complement of a prime ideal `I ⊆ R` is a submonoid of `R`. -/
+/-- The complement of a prime ideal `P ⊆ R` is a submonoid of `R`. -/
def primeCompl : Submonoid R where
- carrier := (Iᶜ : Set R)
- one_mem' := by convert I.ne_top_iff_one.1 hp.1
+ carrier := (Pᶜ : Set R)
+ one_mem' := by convert P.ne_top_iff_one.1 hp.1
mul_mem' {x y} hnx hny hxy := Or.casesOn (hp.mem_or_mem hxy) hnx hny
#align ideal.prime_compl Ideal.primeCompl
-theorem primeCompl_le_nonZeroDivisors [NoZeroDivisors R] : I.primeCompl ≤ nonZeroDivisors R :=
- le_nonZeroDivisors_of_noZeroDivisors <| not_not_intro I.zero_mem
+theorem primeCompl_le_nonZeroDivisors [NoZeroDivisors R] : P.primeCompl ≤ nonZeroDivisors R :=
+ le_nonZeroDivisors_of_noZeroDivisors <| not_not_intro P.zero_mem
#align ideal.prime_compl_le_non_zero_divisors Ideal.primeCompl_le_nonZeroDivisors
end Ideal
@@ -58,51 +58,51 @@ end Ideal
/-- Given a prime ideal `P`, the typeclass `IsLocalization.AtPrime S P` states that `S` is
isomorphic to the localization of `R` at the complement of `P`. -/
protected abbrev IsLocalization.AtPrime :=
- IsLocalization I.primeCompl S
+ IsLocalization P.primeCompl S
#align is_localization.at_prime IsLocalization.AtPrime
-/-- Given a prime ideal `P`, `Localization.AtPrime S P` is a localization of
+/-- Given a prime ideal `P`, `Localization.AtPrime P` is a localization of
`R` at the complement of `P`, as a quotient type. -/
protected abbrev Localization.AtPrime :=
- Localization I.primeCompl
+ Localization P.primeCompl
#align localization.at_prime Localization.AtPrime
namespace IsLocalization
-theorem AtPrime.Nontrivial [IsLocalization.AtPrime S I] : Nontrivial S :=
+theorem AtPrime.Nontrivial [IsLocalization.AtPrime S P] : Nontrivial S :=
nontrivial_of_ne (0 : S) 1 fun hze => by
rw [← (algebraMap R S).map_one, ← (algebraMap R S).map_zero] at hze
- obtain ⟨t, ht⟩ := (eq_iff_exists I.primeCompl S).1 hze
+ obtain ⟨t, ht⟩ := (eq_iff_exists P.primeCompl S).1 hze
have htz : (t : R) = 0 := by simpa using ht.symm
- exact t.2 (htz.symm ▸ I.zero_mem : ↑t ∈ I)
+ exact t.2 (htz.symm ▸ P.zero_mem : ↑t ∈ P)
#align is_localization.at_prime.nontrivial IsLocalization.AtPrime.Nontrivial
-theorem AtPrime.localRing [IsLocalization.AtPrime S I] : LocalRing S :=
+theorem AtPrime.localRing [IsLocalization.AtPrime S P] : LocalRing S :=
-- Porting Note : since I couldn't get local instance running, I just specify it manually
- letI := AtPrime.Nontrivial S I
+ letI := AtPrime.Nontrivial S P
LocalRing.of_nonunits_add
(by
intro x y hx hy hu
cases' isUnit_iff_exists_inv.1 hu with z hxyz
- have : ∀ {r : R} {s : I.primeCompl}, mk' S r s ∈ nonunits S → r ∈ I := fun {r s} =>
- not_imp_comm.1 fun nr => isUnit_iff_exists_inv.2 ⟨mk' S ↑s (⟨r, nr⟩ : I.primeCompl),
- mk'_mul_mk'_eq_one' _ _ <| show r ∈ I.primeCompl from nr⟩
- rcases mk'_surjective I.primeCompl x with ⟨rx, sx, hrx⟩
- rcases mk'_surjective I.primeCompl y with ⟨ry, sy, hry⟩
- rcases mk'_surjective I.primeCompl z with ⟨rz, sz, hrz⟩
- rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S I.primeCompl.one_mem] at hxyz
+ have : ∀ {r : R} {s : P.primeCompl}, mk' S r s ∈ nonunits S → r ∈ P := fun {r s} =>
+ not_imp_comm.1 fun nr => isUnit_iff_exists_inv.2 ⟨mk' S ↑s (⟨r, nr⟩ : P.primeCompl),
+ mk'_mul_mk'_eq_one' _ _ <| show r ∈ P.primeCompl from nr⟩
+ rcases mk'_surjective P.primeCompl x with ⟨rx, sx, hrx⟩
+ rcases mk'_surjective P.primeCompl y with ⟨ry, sy, hry⟩
+ rcases mk'_surjective P.primeCompl z with ⟨rz, sz, hrz⟩
+ rw [← hrx, ← hry, ← hrz, ← mk'_add, ← mk'_mul, ← mk'_self S P.primeCompl.one_mem] at hxyz
rw [← hrx] at hx
rw [← hry] at hy
obtain ⟨t, ht⟩ := IsLocalization.eq.1 hxyz
simp only [mul_one, one_mul, Submonoid.coe_mul, Subtype.coe_mk] at ht
- suffices : (t : R) * (sx * sy * sz) ∈ I
+ suffices : (t : R) * (sx * sy * sz) ∈ P
exact
not_or_of_not (mt hp.mem_or_mem <| not_or_of_not sx.2 sy.2) sz.2
(hp.mem_or_mem <| (hp.mem_or_mem this).resolve_left t.2)
rw [← ht]
exact
- I.mul_mem_left _ <| I.mul_mem_right _ <|
- I.add_mem (I.mul_mem_right _ <| this hx) <| I.mul_mem_right _ <| this hy)
+ P.mul_mem_left _ <| P.mul_mem_right _ <|
+ P.add_mem (P.mul_mem_right _ <| this hx) <| P.mul_mem_right _ <| this hy)
#align is_localization.at_prime.local_ring IsLocalization.AtPrime.localRing
end IsLocalization
@@ -110,8 +110,8 @@ end IsLocalization
namespace Localization
/-- The localization of `R` at the complement of a prime ideal is a local ring. -/
-instance AtPrime.localRing : LocalRing (Localization I.primeCompl) :=
- IsLocalization.AtPrime.localRing (Localization I.primeCompl) I
+instance AtPrime.localRing : LocalRing (Localization P.primeCompl) :=
+ IsLocalization.AtPrime.localRing (Localization P.primeCompl) P
#align localization.at_prime.local_ring Localization.AtPrime.localRing
end Localization
@@ -13,7 +13,7 @@ import Mathlib.RingTheory.Localization.Ideal
## Main definitions
- * `IsLocalization.AtPrime (I : Ideal R) [IsPrime I] (S : Type*)` expresses that `S` is a
+ * `IsLocalization.AtPrime (I : Ideal R) [IsPrime I] (S : Type _)` expresses that `S` is a
localization at (the complement of) a prime ideal `I`, as an abbreviation of
`IsLocalization I.prime_compl S`
@@ -180,7 +180,7 @@ variable (I : Ideal R) [hI : I.IsPrime]
variable {I}
-/-- The unique maximal ideal of the localization at `I.prime_compl` lies over the ideal `I`. -/
+/-- The unique maximal ideal of the localization at `I.primeCompl` lies over the ideal `I`. -/
theorem AtPrime.comap_maximalIdeal :
Ideal.comap (algebraMap R (Localization.AtPrime I))
(LocalRing.maximalIdeal (Localization I.primeCompl)) =
@@ -189,8 +189,8 @@ theorem AtPrime.comap_maximalIdeal :
IsLocalization.AtPrime.comap_maximalIdeal _ _
#align localization.at_prime.comap_maximal_ideal Localization.AtPrime.comap_maximalIdeal
-/-- The image of `I` in the localization at `I.prime_compl` is a maximal ideal, and in particular
-it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
+/-- The image of `I` in the localization at `I.primeCompl` is a maximal ideal, and in particular
+it is the unique maximal ideal given by the local ring structure `AtPrime.localRing` -/
theorem AtPrime.map_eq_maximalIdeal :
Ideal.map (algebraMap R (Localization.AtPrime I)) I =
LocalRing.maximalIdeal (Localization I.primeCompl) := by
@@ -205,7 +205,8 @@ theorem le_comap_primeCompl_iff {J : Ideal P} [hJ : J.IsPrime] {f : R →+* P} :
I.primeCompl ≤ J.primeCompl.comap f ↔ J.comap f ≤ I :=
⟨fun h x hx => by
contrapose! hx
- exact h hx, fun h x hx hfxJ => hx (h hfxJ)⟩
+ exact h hx,
+ fun h x hx hfxJ => hx (h hfxJ)⟩
#align localization.le_comap_prime_compl_iff Localization.le_comap_primeCompl_iff
variable (I)
@@ -2,15 +2,12 @@
Copyright (c) 2018 Kenny Lau. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kenny Lau, Mario Carneiro, Johan Commelin, Amelia Livingston, Anne Baanen
-
-! This file was ported from Lean 3 source module ring_theory.localization.at_prime
-! leanprover-community/mathlib commit b86c528d08a52a1fdb50d999232408e1c7e85d7d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.Ideal.LocalRing
import Mathlib.RingTheory.Localization.Ideal
+#align_import ring_theory.localization.at_prime from "leanprover-community/mathlib"@"b86c528d08a52a1fdb50d999232408e1c7e85d7d"
+
/-!
# Localizations of commutative rings at the complement of a prime ideal
@@ -27,7 +27,7 @@ import Mathlib.RingTheory.Localization.Ideal
## Implementation notes
-See `src/ring_theory/Localization/basic.lean` for a design overview.
+See `RingTheory.Localization.Basic` for a design overview.
## Tags
localization, ring localization, commutative ring localization, characteristic predicate,
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -242,7 +242,7 @@ instance isLocalRingHom_localRingHom (J : Ideal P) [hJ : J.IsPrime] (f : R →+*
IsLocalRingHom.mk fun x hx => by
rcases IsLocalization.mk'_surjective I.primeCompl x with ⟨r, s, rfl⟩
rw [localRingHom_mk'] at hx
- rw [AtPrime.isUnit_mk'_iff] at hx⊢
+ rw [AtPrime.isUnit_mk'_iff] at hx ⊢
exact fun hr => hx ((SetLike.ext_iff.mp hIJ r).mp hr)
#align localization.is_local_ring_hom_local_ring_hom Localization.isLocalRingHom_localRingHom
The unported dependencies are