ring_theory.localization.integral
⟷
Mathlib.RingTheory.Localization.Integral
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -3,7 +3,7 @@ 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 Data.Polynomial.Lifts
+import Algebra.Polynomial.Lifts
import GroupTheory.MonoidLocalization
import RingTheory.Algebraic
import RingTheory.Ideal.LocalRing
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -10,7 +10,7 @@ import RingTheory.Ideal.LocalRing
import RingTheory.IntegralClosure
import RingTheory.Localization.FractionRing
import RingTheory.Localization.Integer
-import RingTheory.NonZeroDivisors
+import Algebra.GroupWithZero.NonZeroDivisors
import Tactic.RingExp
#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -162,7 +162,7 @@ theorem integerNormalization_eq_zero_iff {p : K[X]} :
apply smul_zero
assumption
· have hi := h i
- rw [Polynomial.coeff_zero, ← @to_map_eq_zero_iff A _ K, hb i, Algebra.smul_def] at hi
+ rw [Polynomial.coeff_zero, ← @to_map_eq_zero_iff A _ K, hb i, Algebra.smul_def] at hi
apply Or.resolve_left (eq_zero_or_eq_zero_of_mul_eq_zero hi)
intro h
apply mem_non_zero_divisors_iff_ne_zero.mp nonzero
@@ -269,8 +269,8 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
obtain ⟨v', hv'⟩ := isUnit_iff_exists_inv'.1 (map_units Rₘ ⟨v, hv.1⟩)
refine' @IsIntegral.of_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _ _
· replace hv' := congr_arg (@algebraMap Rₘ Sₘ _ _ (localizationAlgebra M S)) hv'
- rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
- erw [IsLocalization.map_comp] at hv'
+ rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
+ erw [IsLocalization.map_comp] at hv'
exact hv.2 ▸ hv'
· obtain ⟨p, hp⟩ := H s
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
@@ -309,7 +309,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
· exact RingHom.mem_range_self _ _
· rw [← Algebra.smul_def]
exact ⟨_, IsLocalization.map_integerMultiple M p.support p.coeff ⟨n, h₁⟩⟩
- · rw [Polynomial.not_mem_support_iff] at h₁
+ · rw [Polynomial.not_mem_support_iff] at h₁
rw [h₁, MulZeroClass.zero_mul]
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
@@ -458,7 +458,7 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
· intro h x
obtain ⟨f, hf₁, hf₂⟩ := h (algebraMap S K x)
use f, hf₁
- rw [Polynomial.aeval_algebraMap_apply] at hf₂
+ rw [Polynomial.aeval_algebraMap_apply] at hf₂
exact
(injective_iff_map_eq_zero (algebraMap S K)).1 (NoZeroSMulDivisors.algebraMap_injective _ _) _
hf₂
@@ -494,7 +494,7 @@ theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [
have mk_yz_eq : IsLocalization.mk' L y' z' = IsLocalization.mk' L y ⟨_, hz0'⟩ :=
by
rw [Algebra.smul_def, mul_comm _ y, mul_comm _ y', ← SetLike.coe_mk (algebraMap R S z) hz0'] at
- yz_eq
+ yz_eq
exact IsLocalization.mk'_eq_of_eq (by rw [mul_comm _ y, mul_comm _ y', yz_eq])
suffices hy : algebraMap S L (a * y) ∈ Submodule.span K (⇑(algebraMap S L) '' b)
· rw [mk_yz_eq, IsFractionRing.mk'_eq_div, SetLike.coe_mk, ← IsScalarTower.algebraMap_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -267,9 +267,7 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
obtain ⟨⟨s, ⟨u, hu⟩⟩, hx⟩ := surj (Algebra.algebraMapSubmonoid S M) x
obtain ⟨v, hv⟩ := hu
obtain ⟨v', hv'⟩ := isUnit_iff_exists_inv'.1 (map_units Rₘ ⟨v, hv.1⟩)
- refine'
- @isIntegral_of_isIntegral_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _
- _
+ refine' @IsIntegral.of_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _ _
· replace hv' := congr_arg (@algebraMap Rₘ Sₘ _ _ (localizationAlgebra M S)) hv'
rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
erw [IsLocalization.map_comp] at hv'
@@ -380,7 +378,7 @@ the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
[FiniteDimensional K L] : IsFractionRing C L :=
isFractionRing_of_algebraic A C
- (IsFractionRing.comap_isAlgebraic_iff.mpr (isAlgebraic_of_finite K L)) fun x hx =>
+ (IsFractionRing.comap_isAlgebraic_iff.mpr (Algebra.IsAlgebraic.of_finite K L)) fun x hx =>
IsFractionRing.to_map_eq_zero_iff.mp
((map_eq_zero <| algebraMap K L).mp <| (IsScalarTower.algebraMap_apply _ _ _ _).symm.trans hx)
#align is_integral_closure.is_fraction_ring_of_finite_extension IsIntegralClosure.isFractionRing_of_finite_extension
@@ -433,12 +431,12 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
obtain ⟨a : S, b, ha, rfl⟩ := @div_surjective S _ _ _ _ _ _ x
obtain ⟨f, hf₁, hf₂⟩ := h b
rw [div_eq_mul_inv]
- refine' isIntegral_mul _ _
+ refine' IsIntegral.mul _ _
· rw [← isAlgebraic_iff_isIntegral]
refine'
_root_.is_algebraic_of_larger_base_of_injective
(NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)) _
- exact isAlgebraic_algebraMap_of_isAlgebraic (h a)
+ exact IsAlgebraic.algebraMap (h a)
· rw [← isAlgebraic_iff_isIntegral]
use(f.map (algebraMap R (FractionRing R))).reverse
constructor
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,15 +3,15 @@ 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.Data.Polynomial.Lifts
-import Mathbin.GroupTheory.MonoidLocalization
-import Mathbin.RingTheory.Algebraic
-import Mathbin.RingTheory.Ideal.LocalRing
-import Mathbin.RingTheory.IntegralClosure
-import Mathbin.RingTheory.Localization.FractionRing
-import Mathbin.RingTheory.Localization.Integer
-import Mathbin.RingTheory.NonZeroDivisors
-import Mathbin.Tactic.RingExp
+import Data.Polynomial.Lifts
+import GroupTheory.MonoidLocalization
+import RingTheory.Algebraic
+import RingTheory.Ideal.LocalRing
+import RingTheory.IntegralClosure
+import RingTheory.Localization.FractionRing
+import RingTheory.Localization.Integer
+import RingTheory.NonZeroDivisors
+import Tactic.RingExp
#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -440,7 +440,7 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
(NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)) _
exact isAlgebraic_algebraMap_of_isAlgebraic (h a)
· rw [← isAlgebraic_iff_isIntegral]
- use (f.map (algebraMap R (FractionRing R))).reverse
+ use(f.map (algebraMap R (FractionRing R))).reverse
constructor
·
rwa [Ne.def, Polynomial.reverse_eq_zero, ← Polynomial.degree_eq_bot,
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
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.integral
-! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Polynomial.Lifts
import Mathbin.GroupTheory.MonoidLocalization
@@ -18,6 +13,8 @@ import Mathbin.RingTheory.Localization.Integer
import Mathbin.RingTheory.NonZeroDivisors
import Mathbin.Tactic.RingExp
+#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
+
/-!
# Integral and algebraic elements of a fraction field
mathlib commit https://github.com/leanprover-community/mathlib/commit/f2ad3645af9effcdb587637dc28a6074edc813f9
@@ -370,7 +370,7 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
hy (inj _ (by rw [IsScalarTower.algebraMap_apply A C L, h, RingHom.map_zero]))⟩,
by rw [SetLike.coe_mk, algebra_map_mk', ← IsScalarTower.algebraMap_apply A C L, hxy]⟩
eq_iff_exists := fun x y =>
- ⟨fun h => ⟨1, by simpa using algebra_map_injective C A L h⟩, fun ⟨c, hc⟩ =>
+ ⟨fun h => ⟨1, by simpa using algebraMap_injective C A L h⟩, fun ⟨c, hc⟩ =>
congr_arg (algebraMap _ L) (mul_left_cancel₀ (mem_nonZeroDivisors_iff_ne_zero.mp c.2) hc)⟩ }
#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraic
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -62,18 +62,22 @@ noncomputable def coeffIntegerNormalization (p : S[X]) (i : ℕ) : R :=
#align is_localization.coeff_integer_normalization IsLocalization.coeffIntegerNormalization
-/
+#print IsLocalization.coeffIntegerNormalization_of_not_mem_support /-
theorem coeffIntegerNormalization_of_not_mem_support (p : S[X]) (i : ℕ) (h : coeff p i = 0) :
coeffIntegerNormalization M p i = 0 := by
simp only [coeff_integer_normalization, h, mem_support_iff, eq_self_iff_true, not_true, Ne.def,
dif_neg, not_false_iff]
#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_support
+-/
+#print IsLocalization.coeffIntegerNormalization_mem_support /-
theorem coeffIntegerNormalization_mem_support (p : S[X]) (i : ℕ)
(h : coeffIntegerNormalization M p i ≠ 0) : i ∈ p.support :=
by
contrapose h
rw [Ne.def, Classical.not_not, coeff_integer_normalization, dif_neg h]
#align is_localization.coeff_integer_normalization_mem_support IsLocalization.coeffIntegerNormalization_mem_support
+-/
#print IsLocalization.integerNormalization /-
/-- `integer_normalization g` normalizes `g` to have integer coefficients
@@ -92,6 +96,7 @@ theorem integerNormalization_coeff (p : S[X]) (i : ℕ) :
#align is_localization.integer_normalization_coeff IsLocalization.integerNormalization_coeff
-/
+#print IsLocalization.integerNormalization_spec /-
theorem integerNormalization_spec (p : S[X]) :
∃ b : M, ∀ i, algebraMap R S ((integerNormalization M p).coeff i) = (b : R) • p.coeff i :=
by
@@ -108,26 +113,33 @@ theorem integerNormalization_spec (p : S[X]) :
· apply RingHom.map_zero
· exact not_mem_support_iff.mp hi
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
+-/
+#print IsLocalization.integerNormalization_map_to_map /-
theorem integerNormalization_map_to_map (p : S[X]) :
∃ b : M, (integerNormalization M p).map (algebraMap R S) = (b : R) • p :=
let ⟨b, hb⟩ := integerNormalization_spec M p
⟨b, Polynomial.ext fun i => by rw [coeff_map, coeff_smul]; exact hb i⟩
#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_map
+-/
variable {R' : Type _} [CommRing R']
+#print IsLocalization.integerNormalization_eval₂_eq_zero /-
theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'}
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
let ⟨b, hb⟩ := integerNormalization_map_to_map M p
trans (eval₂_map (algebraMap R S) g x).symm
(by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, MulZeroClass.mul_zero])
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
+-/
+#print IsLocalization.integerNormalization_aeval_eq_zero /-
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
rw [aeval_def, IsScalarTower.algebraMap_eq R S R', integer_normalization_eval₂_eq_zero _ _ _ hx]
#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zero
+-/
end IntegerNormalization
@@ -163,6 +175,7 @@ theorem integerNormalization_eq_zero_iff {p : K[X]} :
variable (A K C)
+#print IsFractionRing.isAlgebraic_iff /-
/-- An element of a ring is algebraic over the ring `A` iff it is algebraic
over the field of fractions of `A`.
-/
@@ -179,15 +192,18 @@ theorem isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] {x : C
⟨integer_normalization _ p, mt integer_normalization_eq_zero_iff.mp hp,
integer_normalization_aeval_eq_zero _ p px⟩
#align is_fraction_ring.is_algebraic_iff IsFractionRing.isAlgebraic_iff
+-/
variable {A K C}
+#print IsFractionRing.comap_isAlgebraic_iff /-
/-- A ring is algebraic over the ring `A` iff it is algebraic over the field of fractions of `A`.
-/
theorem comap_isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] :
Algebra.IsAlgebraic A C ↔ Algebra.IsAlgebraic K C :=
⟨fun h x => (isAlgebraic_iff A K C).mp (h x), fun h x => (isAlgebraic_iff A K C).mpr (h x)⟩
#align is_fraction_ring.comap_is_algebraic_iff IsFractionRing.comap_isAlgebraic_iff
+-/
end IsFractionRing
@@ -205,6 +221,7 @@ variable {S M}
open Polynomial
+#print RingHom.isIntegralElem_localization_at_leadingCoeff /-
theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [CommRing R] [CommRing S]
(f : R →+* S) (x : S) (p : R[X]) (hf : p.eval₂ f x = 0) (M : Submonoid R)
(hM : p.leadingCoeff ∈ M) {Rₘ Sₘ : Type _} [CommRing Rₘ] [CommRing Sₘ] [Algebra R Rₘ]
@@ -223,7 +240,9 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
erw [eval₂_map, IsLocalization.map_comp, ← hom_eval₂ _ f (algebraMap S Sₘ) x]
exact trans (congr_arg (algebraMap S Sₘ) hf) (RingHom.map_zero _)
#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeff
+-/
+#print is_integral_localization_at_leadingCoeff /-
/-- Given a particular witness to an element being algebraic over an algebra `R → S`,
We can localize to a submonoid containing the leading coefficient to make it integral.
Explicitly, the map between the localizations will be an integral ring morphism -/
@@ -235,7 +254,9 @@ theorem is_integral_localization_at_leadingCoeff {x : S} (p : R[X]) (hp : aeval
(algebraMap S Sₘ x) :=
(algebraMap R S).isIntegralElem_localization_at_leadingCoeff x p hp M hM
#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeff
+-/
+#print isIntegral_localization /-
/-- If `R → S` is an integral extension, `M` is a submonoid of `R`,
`Rₘ` is the localization of `R` at `M`,
and `Sₘ` is the localization of `S` at the image of `M` under the extension map,
@@ -259,7 +280,9 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
· obtain ⟨p, hp⟩ := H s
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
#align is_integral_localization isIntegral_localization
+-/
+#print isIntegral_localization' /-
theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R →+* S}
(hf : f.IsIntegral) (M : Submonoid R) :
(map (Localization (M.map (f : R →* S))) f
@@ -267,9 +290,11 @@ theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R
Localization M →+* _).IsIntegral :=
@isIntegral_localization R _ M S _ f.toAlgebra _ _ _ _ _ _ _ _ hf
#align is_integral_localization' isIntegral_localization'
+-/
variable (M)
+#print IsLocalization.scaleRoots_commonDenom_mem_lifts /-
theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
(hp : p.leadingCoeff ∈ (algebraMap R Rₘ).range) :
p.scaleRoots (algebraMap R Rₘ <| IsLocalization.commonDenom M p.support p.coeff) ∈
@@ -293,7 +318,9 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
rw [h₁, MulZeroClass.zero_mul]
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
+-/
+#print IsIntegral.exists_multiple_integral_of_isLocalization /-
theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [IsScalarTower R Rₘ S]
(x : S) (hx : IsIntegral Rₘ x) : ∃ m : M, IsIntegral R (m • x) :=
by
@@ -310,6 +337,7 @@ theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [
· rw [hp₁.leading_coeff]; exact one_mem _
· rwa [Polynomial.monic_scaleRoots_iff]
#align is_integral.exists_multiple_integral_of_is_localization IsIntegral.exists_multiple_integral_of_isLocalization
+-/
end IsIntegral
@@ -325,6 +353,7 @@ variable [Algebra A C] [IsScalarTower A C L]
open Algebra
+#print IsIntegralClosure.isFractionRing_of_algebraic /-
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
@@ -344,9 +373,11 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
⟨fun h => ⟨1, by simpa using algebra_map_injective C A L h⟩, fun ⟨c, hc⟩ =>
congr_arg (algebraMap _ L) (mul_left_cancel₀ (mem_nonZeroDivisors_iff_ne_zero.mp c.2) hc)⟩ }
#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraic
+-/
variable (K L)
+#print IsIntegralClosure.isFractionRing_of_finite_extension /-
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
@@ -356,6 +387,7 @@ theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
IsFractionRing.to_map_eq_zero_iff.mp
((map_eq_zero <| algebraMap K L).mp <| (IsScalarTower.algebraMap_apply _ _ _ _).symm.trans hx)
#align is_integral_closure.is_fraction_ring_of_finite_extension IsIntegralClosure.isFractionRing_of_finite_extension
+-/
end IsIntegralClosure
@@ -365,21 +397,25 @@ variable {L : Type _} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
open Algebra
+#print integralClosure.isFractionRing_of_algebraic /-
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
(inj : ∀ x, algebraMap A L x = 0 → x = 0) : IsFractionRing (integralClosure A L) L :=
IsIntegralClosure.isFractionRing_of_algebraic A (integralClosure A L) alg inj
#align integral_closure.is_fraction_ring_of_algebraic integralClosure.isFractionRing_of_algebraic
+-/
variable (K L)
+#print integralClosure.isFractionRing_of_finite_extension /-
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra A L] [Algebra K L] [IsScalarTower A K L]
[FiniteDimensional K L] : IsFractionRing (integralClosure A L) L :=
IsIntegralClosure.isFractionRing_of_finite_extension A K L (integralClosure A L)
#align integral_closure.is_fraction_ring_of_finite_extension integralClosure.isFractionRing_of_finite_extension
+-/
end integralClosure
@@ -387,6 +423,7 @@ namespace IsFractionRing
variable (R S K)
+#print IsFractionRing.isAlgebraic_iff' /-
/-- `S` is algebraic over `R` iff a fraction ring of `S` is algebraic over `R` -/
theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Algebra S K]
[NoZeroSMulDivisors R K] [IsFractionRing S K] [IsScalarTower R S K] :
@@ -431,11 +468,13 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
(injective_iff_map_eq_zero (algebraMap S K)).1 (NoZeroSMulDivisors.algebraMap_injective _ _) _
hf₂
#align is_fraction_ring.is_algebraic_iff' IsFractionRing.isAlgebraic_iff'
+-/
open scoped nonZeroDivisors
variable (R) {S K}
+#print IsFractionRing.ideal_span_singleton_map_subset /-
/-- If the `S`-multiples of `a` are contained in some `R`-span, then `Frac(S)`-multiples of `a`
are contained in the equivalent `Frac(R)`-span. -/
theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [Field K] [Field L]
@@ -471,6 +510,7 @@ theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [
rw [Submodule.span_algebraMap_image_of_tower]
exact Submodule.mem_map_of_mem (h (ideal.mem_span_singleton.mpr ⟨y, rfl⟩))
#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subset
+-/
end IsFractionRing
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -104,7 +104,7 @@ theorem integerNormalization_spec (p : S[X]) :
Classical.choose_spec
(Classical.choose_spec (exist_integer_multiples_of_finset M (p.support.image p.coeff))
(p.coeff i) (finset.mem_image.mpr ⟨i, hi, rfl⟩))
- · convert(smul_zero _).symm
+ · convert (smul_zero _).symm
· apply RingHom.map_zero
· exact not_mem_support_iff.mp hi
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -153,7 +153,7 @@ theorem integerNormalization_eq_zero_iff {p : K[X]} :
apply smul_zero
assumption
· have hi := h i
- rw [Polynomial.coeff_zero, ← @to_map_eq_zero_iff A _ K, hb i, Algebra.smul_def] at hi
+ rw [Polynomial.coeff_zero, ← @to_map_eq_zero_iff A _ K, hb i, Algebra.smul_def] at hi
apply Or.resolve_left (eq_zero_or_eq_zero_of_mul_eq_zero hi)
intro h
apply mem_non_zero_divisors_iff_ne_zero.mp nonzero
@@ -253,8 +253,8 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
@isIntegral_of_isIntegral_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _
_
· replace hv' := congr_arg (@algebraMap Rₘ Sₘ _ _ (localizationAlgebra M S)) hv'
- rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
- erw [IsLocalization.map_comp] at hv'
+ rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
+ erw [IsLocalization.map_comp] at hv'
exact hv.2 ▸ hv'
· obtain ⟨p, hp⟩ := H s
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
@@ -289,7 +289,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
· exact RingHom.mem_range_self _ _
· rw [← Algebra.smul_def]
exact ⟨_, IsLocalization.map_integerMultiple M p.support p.coeff ⟨n, h₁⟩⟩
- · rw [Polynomial.not_mem_support_iff] at h₁
+ · rw [Polynomial.not_mem_support_iff] at h₁
rw [h₁, MulZeroClass.zero_mul]
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
@@ -426,7 +426,7 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
· intro h x
obtain ⟨f, hf₁, hf₂⟩ := h (algebraMap S K x)
use f, hf₁
- rw [Polynomial.aeval_algebraMap_apply] at hf₂
+ rw [Polynomial.aeval_algebraMap_apply] at hf₂
exact
(injective_iff_map_eq_zero (algebraMap S K)).1 (NoZeroSMulDivisors.algebraMap_injective _ _) _
hf₂
@@ -460,7 +460,7 @@ theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [
have mk_yz_eq : IsLocalization.mk' L y' z' = IsLocalization.mk' L y ⟨_, hz0'⟩ :=
by
rw [Algebra.smul_def, mul_comm _ y, mul_comm _ y', ← SetLike.coe_mk (algebraMap R S z) hz0'] at
- yz_eq
+ yz_eq
exact IsLocalization.mk'_eq_of_eq (by rw [mul_comm _ y, mul_comm _ y', yz_eq])
suffices hy : algebraMap S L (a * y) ∈ Submodule.span K (⇑(algebraMap S L) '' b)
· rw [mk_yz_eq, IsFractionRing.mk'_eq_div, SetLike.coe_mk, ← IsScalarTower.algebraMap_apply,
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -339,7 +339,7 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
⟨⟨mk' C (x : L) x.2, algebraMap _ _ y,
mem_nonZeroDivisors_iff_ne_zero.mpr fun h =>
hy (inj _ (by rw [IsScalarTower.algebraMap_apply A C L, h, RingHom.map_zero]))⟩,
- by rw [[anonymous], algebra_map_mk', ← IsScalarTower.algebraMap_apply A C L, hxy]⟩
+ by rw [SetLike.coe_mk, algebra_map_mk', ← IsScalarTower.algebraMap_apply A C L, hxy]⟩
eq_iff_exists := fun x y =>
⟨fun h => ⟨1, by simpa using algebra_map_injective C A L h⟩, fun ⟨c, hc⟩ =>
congr_arg (algebraMap _ L) (mul_left_cancel₀ (mem_nonZeroDivisors_iff_ne_zero.mp c.2) hc)⟩ }
@@ -459,11 +459,11 @@ theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [
map_mem_nonZeroDivisors (algebraMap R S) injRS (mem_nonZeroDivisors_of_ne_zero hz0)
have mk_yz_eq : IsLocalization.mk' L y' z' = IsLocalization.mk' L y ⟨_, hz0'⟩ :=
by
- rw [Algebra.smul_def, mul_comm _ y, mul_comm _ y', ← [anonymous] (algebraMap R S z) hz0'] at
+ rw [Algebra.smul_def, mul_comm _ y, mul_comm _ y', ← SetLike.coe_mk (algebraMap R S z) hz0'] at
yz_eq
exact IsLocalization.mk'_eq_of_eq (by rw [mul_comm _ y, mul_comm _ y', yz_eq])
suffices hy : algebraMap S L (a * y) ∈ Submodule.span K (⇑(algebraMap S L) '' b)
- · rw [mk_yz_eq, IsFractionRing.mk'_eq_div, [anonymous], ← IsScalarTower.algebraMap_apply,
+ · rw [mk_yz_eq, IsFractionRing.mk'_eq_div, SetLike.coe_mk, ← IsScalarTower.algebraMap_apply,
IsScalarTower.algebraMap_apply R K L, div_eq_mul_inv, ← mul_assoc, mul_comm, ← map_inv₀, ←
Algebra.smul_def, ← _root_.map_mul]
exact (Submodule.span K _).smul_mem _ hy
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -38,7 +38,7 @@ variable {R : Type _} [CommRing R] (M : Submonoid R) {S : Type _} [CommRing S]
variable [Algebra R S] {P : Type _} [CommRing P]
-open BigOperators Polynomial
+open scoped BigOperators Polynomial
namespace IsLocalization
@@ -48,7 +48,7 @@ open Polynomial
variable (M) {S} [IsLocalization M S]
-open Classical
+open scoped Classical
#print IsLocalization.coeffIntegerNormalization /-
/-- `coeff_integer_normalization p` gives the coefficients of the polynomial
@@ -432,7 +432,7 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
hf₂
#align is_fraction_ring.is_algebraic_iff' IsFractionRing.isAlgebraic_iff'
-open nonZeroDivisors
+open scoped nonZeroDivisors
variable (R) {S K}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -62,24 +62,12 @@ noncomputable def coeffIntegerNormalization (p : S[X]) (i : ℕ) : R :=
#align is_localization.coeff_integer_normalization IsLocalization.coeffIntegerNormalization
-/
-/- warning: is_localization.coeff_integer_normalization_of_not_mem_support -> IsLocalization.coeffIntegerNormalization_of_not_mem_support is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (i : Nat), (Eq.{succ u2} S (Polynomial.coeff.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p i) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))))) -> (Eq.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (i : Nat), (Eq.{succ u2} S (Polynomial.coeff.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p i) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) -> (Eq.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_supportₓ'. -/
theorem coeffIntegerNormalization_of_not_mem_support (p : S[X]) (i : ℕ) (h : coeff p i = 0) :
coeffIntegerNormalization M p i = 0 := by
simp only [coeff_integer_normalization, h, mem_support_iff, eq_self_iff_true, not_true, Ne.def,
dif_neg, not_false_iff]
#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_support
-/- warning: is_localization.coeff_integer_normalization_mem_support -> IsLocalization.coeffIntegerNormalization_mem_support is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (i : Nat), (Ne.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))) -> (Membership.Mem.{0, 0} Nat (Finset.{0} Nat) (Finset.hasMem.{0} Nat) i (Polynomial.support.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (i : Nat), (Ne.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) -> (Membership.mem.{0, 0} Nat (Finset.{0} Nat) (Finset.instMembershipFinset.{0} Nat) i (Polynomial.support.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p))
-Case conversion may be inaccurate. Consider using '#align is_localization.coeff_integer_normalization_mem_support IsLocalization.coeffIntegerNormalization_mem_supportₓ'. -/
theorem coeffIntegerNormalization_mem_support (p : S[X]) (i : ℕ)
(h : coeffIntegerNormalization M p i ≠ 0) : i ∈ p.support :=
by
@@ -104,9 +92,6 @@ theorem integerNormalization_coeff (p : S[X]) (i : ℕ) :
#align is_localization.integer_normalization_coeff IsLocalization.integerNormalization_coeff
-/
-/- warning: is_localization.integer_normalization_spec -> IsLocalization.integerNormalization_spec is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_specₓ'. -/
theorem integerNormalization_spec (p : S[X]) :
∃ b : M, ∀ i, algebraMap R S ((integerNormalization M p).coeff i) = (b : R) • p.coeff i :=
by
@@ -124,9 +109,6 @@ theorem integerNormalization_spec (p : S[X]) :
· exact not_mem_support_iff.mp hi
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
-/- warning: is_localization.integer_normalization_map_to_map -> IsLocalization.integerNormalization_map_to_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_mapₓ'. -/
theorem integerNormalization_map_to_map (p : S[X]) :
∃ b : M, (integerNormalization M p).map (algebraMap R S) = (b : R) • p :=
let ⟨b, hb⟩ := integerNormalization_spec M p
@@ -135,12 +117,6 @@ theorem integerNormalization_map_to_map (p : S[X]) :
variable {R' : Type _} [CommRing R']
-/- warning: is_localization.integer_normalization_eval₂_eq_zero -> IsLocalization.integerNormalization_eval₂_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] {R' : Type.{u3}} [_inst_6 : CommRing.{u3} R'] (g : RingHom.{u2, u3} S R' (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))) (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) {x : R'}, (Eq.{succ u3} R' (Polynomial.eval₂.{u2, u3} S R' (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) g x p) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))))) -> (Eq.{succ u3} R' (Polynomial.eval₂.{u1, u3} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (RingHom.comp.{u1, u2, u3} R S R' (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))) g (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) x (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u1, u3} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] [_inst_5 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] (g : RingHom.{u3, u2} S R' (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (p : Polynomial.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) {x : R'}, (Eq.{succ u2} R' (Polynomial.eval₂.{u3, u2} S R' (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) g x p) (OfNat.ofNat.{u2} R' 0 (Zero.toOfNat0.{u2} R' (CommMonoidWithZero.toZero.{u2} R' (CommSemiring.toCommMonoidWithZero.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) -> (Eq.{succ u2} R' (Polynomial.eval₂.{u1, u2} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (RingHom.comp.{u1, u3, u2} R S R' (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))) g (algebraMap.{u1, u3} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) x (IsLocalization.integerNormalization.{u1, u3} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} R' 0 (Zero.toOfNat0.{u2} R' (CommMonoidWithZero.toZero.{u2} R' (CommSemiring.toCommMonoidWithZero.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))
-Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zeroₓ'. -/
theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'}
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
let ⟨b, hb⟩ := integerNormalization_map_to_map M p
@@ -148,9 +124,6 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
(by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, MulZeroClass.mul_zero])
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
-/- warning: is_localization.integer_normalization_aeval_eq_zero -> IsLocalization.integerNormalization_aeval_eq_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zeroₓ'. -/
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
rw [aeval_def, IsScalarTower.algebraMap_eq R S R', integer_normalization_eval₂_eq_zero _ _ _ hx]
@@ -190,12 +163,6 @@ theorem integerNormalization_eq_zero_iff {p : K[X]} :
variable (A K C)
-/- warning: is_fraction_ring.is_algebraic_iff -> IsFractionRing.isAlgebraic_iff is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) (K : Type.{u2}) (C : Type.{u3}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] [_inst_7 : Field.{u2} K] [_inst_8 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_9 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u3} C] [_inst_11 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_12 : Algebra.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K C (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} K C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K C (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K C (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u2, u3} K C (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_11)))))] {x : C}, Iff (IsAlgebraic.{u1, u3} A C _inst_5 (CommRing.toRing.{u3} C _inst_10) _inst_11 x) (IsAlgebraic.{u2, u3} K C (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) (CommRing.toRing.{u3} C _inst_10) _inst_12 x)
-but is expected to have type
- forall (A : Type.{u3}) (K : Type.{u1}) (C : Type.{u2}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] [_inst_7 : Field.{u1} K] [_inst_8 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_9 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u2} C] [_inst_11 : Algebra.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_12 : Algebra.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K C (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_8) (Algebra.toSMul.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_12) (Algebra.toSMul.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_11)] {x : C}, Iff (IsAlgebraic.{u3, u2} A C _inst_5 (CommRing.toRing.{u2} C _inst_10) _inst_11 x) (IsAlgebraic.{u1, u2} K C (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) (CommRing.toRing.{u2} C _inst_10) _inst_12 x)
-Case conversion may be inaccurate. Consider using '#align is_fraction_ring.is_algebraic_iff IsFractionRing.isAlgebraic_iffₓ'. -/
/-- An element of a ring is algebraic over the ring `A` iff it is algebraic
over the field of fractions of `A`.
-/
@@ -215,12 +182,6 @@ theorem isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] {x : C
variable {A K C}
-/- warning: is_fraction_ring.comap_is_algebraic_iff -> IsFractionRing.comap_isAlgebraic_iff is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {K : Type.{u2}} {C : Type.{u3}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] [_inst_7 : Field.{u2} K] [_inst_8 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_9 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u3} C] [_inst_11 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_12 : Algebra.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K C (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} K C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K C (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K C (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u2, u3} K C (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_11)))))], Iff (Algebra.IsAlgebraic.{u1, u3} A C _inst_5 (CommRing.toRing.{u3} C _inst_10) _inst_11) (Algebra.IsAlgebraic.{u2, u3} K C (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) (CommRing.toRing.{u3} C _inst_10) _inst_12)
-but is expected to have type
- forall {A : Type.{u3}} {K : Type.{u1}} {C : Type.{u2}} [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] [_inst_7 : Field.{u1} K] [_inst_8 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_9 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u2} C] [_inst_11 : Algebra.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_12 : Algebra.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K C (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_8) (Algebra.toSMul.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_12) (Algebra.toSMul.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_11)], Iff (Algebra.IsAlgebraic.{u3, u2} A C _inst_5 (CommRing.toRing.{u2} C _inst_10) _inst_11) (Algebra.IsAlgebraic.{u1, u2} K C (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) (CommRing.toRing.{u2} C _inst_10) _inst_12)
-Case conversion may be inaccurate. Consider using '#align is_fraction_ring.comap_is_algebraic_iff IsFractionRing.comap_isAlgebraic_iffₓ'. -/
/-- A ring is algebraic over the ring `A` iff it is algebraic over the field of fractions of `A`.
-/
theorem comap_isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] :
@@ -244,9 +205,6 @@ variable {S M}
open Polynomial
-/- warning: ring_hom.is_integral_elem_localization_at_leading_coeff -> RingHom.isIntegralElem_localization_at_leadingCoeff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeffₓ'. -/
theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [CommRing R] [CommRing S]
(f : R →+* S) (x : S) (p : R[X]) (hf : p.eval₂ f x = 0) (M : Submonoid R)
(hM : p.leadingCoeff ∈ M) {Rₘ Sₘ : Type _} [CommRing Rₘ] [CommRing Sₘ] [Algebra R Rₘ]
@@ -266,9 +224,6 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
exact trans (congr_arg (algebraMap S Sₘ) hf) (RingHom.map_zero _)
#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeff
-/- warning: is_integral_localization_at_leading_coeff -> is_integral_localization_at_leadingCoeff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeffₓ'. -/
/-- Given a particular witness to an element being algebraic over an algebra `R → S`,
We can localize to a submonoid containing the leading coefficient to make it integral.
Explicitly, the map between the localizations will be an integral ring morphism -/
@@ -281,9 +236,6 @@ theorem is_integral_localization_at_leadingCoeff {x : S} (p : R[X]) (hp : aeval
(algebraMap R S).isIntegralElem_localization_at_leadingCoeff x p hp M hM
#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeff
-/- warning: is_integral_localization -> isIntegral_localization is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_localization isIntegral_localizationₓ'. -/
/-- If `R → S` is an integral extension, `M` is a submonoid of `R`,
`Rₘ` is the localization of `R` at `M`,
and `Sₘ` is the localization of `S` at the image of `M` under the extension map,
@@ -308,9 +260,6 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
#align is_integral_localization isIntegral_localization
-/- warning: is_integral_localization' -> isIntegral_localization' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_localization' isIntegral_localization'ₓ'. -/
theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R →+* S}
(hf : f.IsIntegral) (M : Submonoid R) :
(map (Localization (M.map (f : R →* S))) f
@@ -321,9 +270,6 @@ theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R
variable (M)
-/- warning: is_localization.scale_roots_common_denom_mem_lifts -> IsLocalization.scaleRoots_commonDenom_mem_lifts is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_liftsₓ'. -/
theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
(hp : p.leadingCoeff ∈ (algebraMap R Rₘ).range) :
p.scaleRoots (algebraMap R Rₘ <| IsLocalization.commonDenom M p.support p.coeff) ∈
@@ -348,9 +294,6 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
-/- warning: is_integral.exists_multiple_integral_of_is_localization -> IsIntegral.exists_multiple_integral_of_isLocalization is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral.exists_multiple_integral_of_is_localization IsIntegral.exists_multiple_integral_of_isLocalizationₓ'. -/
theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [IsScalarTower R Rₘ S]
(x : S) (hx : IsIntegral Rₘ x) : ∃ m : M, IsIntegral R (m • x) :=
by
@@ -382,9 +325,6 @@ variable [Algebra A C] [IsScalarTower A C L]
open Algebra
-/- warning: is_integral_closure.is_fraction_ring_of_algebraic -> IsIntegralClosure.isFractionRing_of_algebraic is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
@@ -407,9 +347,6 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
variable (K L)
-/- warning: is_integral_closure.is_fraction_ring_of_finite_extension -> IsIntegralClosure.isFractionRing_of_finite_extension is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_finite_extension IsIntegralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
@@ -428,9 +365,6 @@ variable {L : Type _} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
open Algebra
-/- warning: integral_closure.is_fraction_ring_of_algebraic -> integralClosure.isFractionRing_of_algebraic is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_algebraic integralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
@@ -440,9 +374,6 @@ theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
variable (K L)
-/- warning: integral_closure.is_fraction_ring_of_finite_extension -> integralClosure.isFractionRing_of_finite_extension is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_finite_extension integralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra A L] [Algebra K L] [IsScalarTower A K L]
@@ -456,9 +387,6 @@ namespace IsFractionRing
variable (R S K)
-/- warning: is_fraction_ring.is_algebraic_iff' -> IsFractionRing.isAlgebraic_iff' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_fraction_ring.is_algebraic_iff' IsFractionRing.isAlgebraic_iff'ₓ'. -/
/-- `S` is algebraic over `R` iff a fraction ring of `S` is algebraic over `R` -/
theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Algebra S K]
[NoZeroSMulDivisors R K] [IsFractionRing S K] [IsScalarTower R S K] :
@@ -508,9 +436,6 @@ open nonZeroDivisors
variable (R) {S K}
-/- warning: is_fraction_ring.ideal_span_singleton_map_subset -> IsFractionRing.ideal_span_singleton_map_subset is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subsetₓ'. -/
/-- If the `S`-multiples of `a` are contained in some `R`-span, then `Frac(S)`-multiples of `a`
are contained in the equivalent `Frac(R)`-span. -/
theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [Field K] [Field L]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -130,10 +130,7 @@ Case conversion may be inaccurate. Consider using '#align is_localization.intege
theorem integerNormalization_map_to_map (p : S[X]) :
∃ b : M, (integerNormalization M p).map (algebraMap R S) = (b : R) • p :=
let ⟨b, hb⟩ := integerNormalization_spec M p
- ⟨b,
- Polynomial.ext fun i => by
- rw [coeff_map, coeff_smul]
- exact hb i⟩
+ ⟨b, Polynomial.ext fun i => by rw [coeff_map, coeff_smul]; exact hb i⟩
#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_map
variable {R' : Type _} [CommRing R']
@@ -367,8 +364,7 @@ theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [
rw [IsScalarTower.algebraMap_eq R Rₘ S, ← Polynomial.eval₂_map, hp'₁, Submonoid.smul_def,
Algebra.smul_def, IsScalarTower.algebraMap_apply R Rₘ S]
exact Polynomial.scaleRoots_eval₂_eq_zero _ hp₂
- · rw [hp₁.leading_coeff]
- exact one_mem _
+ · rw [hp₁.leading_coeff]; exact one_mem _
· rwa [Polynomial.monic_scaleRoots_iff]
#align is_integral.exists_multiple_integral_of_is_localization IsIntegral.exists_multiple_integral_of_isLocalization
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -105,10 +105,7 @@ theorem integerNormalization_coeff (p : S[X]) (i : ℕ) :
-/
/- warning: is_localization.integer_normalization_spec -> IsLocalization.integerNormalization_spec is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))), Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (b : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => forall (i : Nat), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (SMul.smul.{u1, u2} R S (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) b) (Polynomial.coeff.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p i)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))), Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (b : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => forall (i : Nat), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (HSMul.hSMul.{u1, u2, u2} R S S (instHSMul.{u1, u2} R S (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) b) (Polynomial.coeff.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p i)))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_specₓ'. -/
theorem integerNormalization_spec (p : S[X]) :
∃ b : M, ∀ i, algebraMap R S ((integerNormalization M p).coeff i) = (b : R) • p.coeff i :=
@@ -128,10 +125,7 @@ theorem integerNormalization_spec (p : S[X]) :
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
/- warning: is_localization.integer_normalization_map_to_map -> IsLocalization.integerNormalization_map_to_map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))), Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (b : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => Eq.{succ u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.map.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (SMul.smul.{u1, u2} R (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (SMulZeroClass.toHasSmul.{u1, u2} R (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.zero.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.smulZeroClass.{u2, u1} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) R (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) b) p))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))), Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (b : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => Eq.{succ u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.map.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (instHSMul.{u1, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Algebra.toSMul.{u1, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3))) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) b) p))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_mapₓ'. -/
theorem integerNormalization_map_to_map (p : S[X]) :
∃ b : M, (integerNormalization M p).map (algebraMap R S) = (b : R) • p :=
@@ -158,10 +152,7 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
/- warning: is_localization.integer_normalization_aeval_eq_zero -> IsLocalization.integerNormalization_aeval_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] {R' : Type.{u3}} [_inst_6 : CommRing.{u3} R'] [_inst_7 : Algebra.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_8 : Algebra.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_9 : IsScalarTower.{u1, u2, u3} R S R' (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} S R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S R' (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S R' (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} S R' (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R R' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R R' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7)))))] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) {x : R'}, (Eq.{succ u3} R' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (fun (_x : AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) => (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) -> R') ([anonymous].{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (Polynomial.aeval.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))))) -> (Eq.{succ u3} R' (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> R') ([anonymous].{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))))))))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : CommRing.{u3} R] (M : Submonoid.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_5 : IsLocalization.{u3, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) M S (CommRing.toCommSemiring.{u1} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] [_inst_7 : Algebra.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_8 : Algebra.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_9 : IsScalarTower.{u3, u1, u2} R S R' (Algebra.toSMul.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8) (Algebra.toSMul.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)] (p : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) {x : R'}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (fun (_x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (SMulZeroClass.toSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribMulAction.toDistribSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (SMulZeroClass.toSMul.{u1, u2} S R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u1, u2} S R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8 (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (AlgHom.algHomClass.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8))))) (Polynomial.aeval.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) _inst_6)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (fun (_x : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (SMulZeroClass.toSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toZero.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (SMulZeroClass.toSMul.{u3, u2} R R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u3, u2} R R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7 (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) _inst_6))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zeroₓ'. -/
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
@@ -257,10 +248,7 @@ variable {S M}
open Polynomial
/- warning: ring_hom.is_integral_elem_localization_at_leading_coeff -> RingHom.isIntegralElem_localization_at_leadingCoeff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} [_inst_11 : CommRing.{u1} R] [_inst_12 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (x : S) (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11))), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) f x p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))))) -> (forall (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))), (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11)) p) M) -> (forall {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_13 : CommRing.{u3} Rₘ] [_inst_14 : CommRing.{u4} Sₘ] [_inst_15 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_11) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_13))] [_inst_16 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_13) _inst_15] [_inst_17 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_12) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14))] [_inst_18 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_14) _inst_17], RingHom.IsIntegralElem.{u3, u4} Rₘ Sₘ _inst_13 (CommRing.toRing.{u4} Sₘ _inst_14) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_13) _inst_15 S (CommRing.toCommSemiring.{u2} S _inst_12) _inst_16 (Submonoid.map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_14) _inst_17 _inst_18 f (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) f)) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) (fun (_x : RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) => S -> Sₘ) (RingHom.hasCoeToFun.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) (algebraMap.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_12) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)) _inst_17) x)))
-but is expected to have type
- forall {R : Type.{u4}} {S : Type.{u3}} [_inst_11 : CommRing.{u4} R] [_inst_12 : CommRing.{u3} S] (f : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (x : S) (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))), (Eq.{succ u3} S (Polynomial.eval₂.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)) f x p) (OfNat.ofNat.{u3} S 0 (Zero.toOfNat0.{u3} S (CommMonoidWithZero.toZero.{u3} S (CommSemiring.toCommMonoidWithZero.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))))) -> (forall (M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))), (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)) p) M) -> (forall {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_13 : CommRing.{u2} Rₘ] [_inst_14 : CommRing.{u1} Sₘ] [_inst_15 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_11) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13))] [_inst_16 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13) _inst_15] [_inst_17 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_12) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))] [_inst_18 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_12) (Submonoid.map.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14) _inst_17], RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_13 (CommRing.toRing.{u1} Sₘ _inst_14) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13) _inst_15 S (CommRing.toCommSemiring.{u3} S _inst_12) _inst_16 (Submonoid.map.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14) _inst_17 _inst_18 f (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_12) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)) _inst_17) x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeffₓ'. -/
theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [CommRing R] [CommRing S]
(f : R →+* S) (x : S) (p : R[X]) (hf : p.eval₂ f x = 0) (M : Submonoid R)
@@ -282,10 +270,7 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeff
/- warning: is_integral_localization_at_leading_coeff -> is_integral_localization_at_leadingCoeff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))} {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_6 : CommRing.{u4} Sₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_2) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))))) -> (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u3, u4} Rₘ Sₘ _inst_5 (CommRing.toRing.{u4} Sₘ _inst_6) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) ((fun (this : LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) M (Submonoid.comap.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (fun (_x : RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) => S -> Sₘ) (RingHom.hasCoeToFun.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (algebraMap.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)) _inst_9) x))
-but is expected to have type
- forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))), (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (SMulZeroClass.toSMul.{u4, u3} R S (AddMonoid.toZero.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribSMul.toSMulZeroClass.{u4, u3} R S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribMulAction.toDistribSMul.{u4, u3} R S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u3, max u3 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3 (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3))))) (Polynomial.aeval.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) _inst_2)))))) -> (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)) _inst_9) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeffₓ'. -/
/-- Given a particular witness to an element being algebraic over an algebra `R → S`,
We can localize to a submonoid containing the leading coefficient to make it integral.
@@ -300,10 +285,7 @@ theorem is_integral_localization_at_leadingCoeff {x : S} (p : R[X]) (hp : aeval
#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeff
/- warning: is_integral_localization -> isIntegral_localization is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))} {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_6 : CommRing.{u4} Sₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_2) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9], (Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3) -> (RingHom.IsIntegral.{u3, u4} Rₘ Sₘ _inst_5 (CommRing.toRing.{u4} Sₘ _inst_6) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) ((fun (this : LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) M (Submonoid.comap.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))
-but is expected to have type
- forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9], (Algebra.IsIntegral.{u4, u3} R S _inst_1 (CommRing.toRing.{u3} S _inst_2) _inst_3) -> (RingHom.IsIntegral.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral_localization isIntegral_localizationₓ'. -/
/-- If `R → S` is an integral extension, `M` is a submonoid of `R`,
`Rₘ` is the localization of `R` at `M`,
@@ -330,10 +312,7 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
#align is_integral_localization isIntegral_localization
/- warning: is_integral_localization' -> isIntegral_localization' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} [_inst_11 : CommRing.{u1} R] [_inst_12 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_11 (CommRing.toRing.{u2} S _inst_12) f) -> (forall (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))), RingHom.IsIntegral.{u1, u2} (Localization.{u1} R (CommRing.toCommMonoid.{u1} R _inst_11) M) (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commRing.{u1} R _inst_11 M) (CommRing.toRing.{u2} (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commRing.{u2} S _inst_12 (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M))) (IsLocalization.map.{u1, u1, u2, u2} R (CommRing.toCommSemiring.{u1} R _inst_11) M (Localization.{u1} R (CommRing.toCommMonoid.{u1} R _inst_11) M) (Localization.commSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M) (Localization.algebra.{u1, u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M R (CommRing.toCommSemiring.{u1} R _inst_11) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) S (CommRing.toCommSemiring.{u2} S _inst_12) (Localization.isLocalization.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M) (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.algebra.{u2, u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M) S (CommRing.toCommSemiring.{u2} S _inst_12) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Localization.isLocalization.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) f (Submonoid.le_comap_map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) M (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f))))
-but is expected to have type
- forall {R : Type.{u2}} {S : Type.{u1}} [_inst_11 : CommRing.{u2} R] [_inst_12 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_11 (CommRing.toRing.{u1} S _inst_12) f) -> (forall (M : Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11)))))), RingHom.IsIntegral.{u2, u1} (Localization.{u2} R (CommRing.toCommMonoid.{u2} R _inst_11) M) (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommRingLocalizationToCommMonoid.{u2} R _inst_11 M) (CommRing.toRing.{u1} (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommRingLocalizationToCommMonoid.{u1} S _inst_12 (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M))) (IsLocalization.map.{u2, u2, u1, u1} R (CommRing.toCommSemiring.{u2} R _inst_11) M (Localization.{u2} R (CommRing.toCommMonoid.{u2} R _inst_11) M) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M R (CommRing.toCommSemiring.{u2} R _inst_11) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) S (CommRing.toCommSemiring.{u1} S _inst_12) (Localization.isLocalization.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M) (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M) S (CommRing.toCommSemiring.{u1} S _inst_12) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (Localization.isLocalization.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) f (Submonoid.le_comap_map.{max u2 u1, u1, u2} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) M (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f))))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral_localization' isIntegral_localization'ₓ'. -/
theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R →+* S}
(hf : f.IsIntegral) (M : Submonoid R) :
@@ -346,10 +325,7 @@ theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R
variable (M)
/- warning: is_localization.scale_roots_common_denom_mem_lifts -> IsLocalization.scaleRoots_commonDenom_mem_lifts is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {Rₘ : Type.{u2}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_7 : Algebra.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] (p : Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))), (Membership.Mem.{u2, u2} Rₘ (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (SetLike.hasMem.{u2, u2} (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) Rₘ (Subring.setLike.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.leadingCoeff.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p) (RingHom.range.{u1, u2} R Rₘ (CommRing.toRing.{u1} R _inst_1) (CommRing.toRing.{u2} Rₘ _inst_5) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7))) -> (Membership.Mem.{u2, u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Subsemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))))) (SetLike.hasMem.{u2, u2} (Subsemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))))) (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Subsemiring.setLike.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))))) (Polynomial.scaleRoots.{u2} Rₘ _inst_5 p (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) (fun (_x : RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) => R -> Rₘ) (RingHom.hasCoeToFun.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) (IsLocalization.commonDenom.{u1, u2, 0} R _inst_1 M Rₘ _inst_5 _inst_7 _inst_8 Nat (Polynomial.support.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p) (Polynomial.coeff.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p))))) (Polynomial.lifts.{u1, u2} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {Rₘ : Type.{u2}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_7 : Algebra.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] (p : Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))), (Membership.mem.{u2, u2} Rₘ (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (SetLike.instMembership.{u2, u2} (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) Rₘ (Subring.instSetLikeSubring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.leadingCoeff.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p) (RingHom.range.{u1, u2} R Rₘ (CommRing.toRing.{u1} R _inst_1) (CommRing.toRing.{u2} Rₘ _inst_5) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7))) -> (Membership.mem.{u2, u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Subsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (SetLike.instMembership.{u2, u2} (Subsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Subsemiring.instSetLikeSubsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))))) (Polynomial.scaleRoots.{u2} Rₘ _inst_5 p (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Rₘ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} Rₘ (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} Rₘ (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (RingHom.instRingHomClassRingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))))) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) (IsLocalization.commonDenom.{u1, u2, 0} R _inst_1 M Rₘ _inst_5 _inst_7 _inst_8 Nat (Polynomial.support.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p) (Polynomial.coeff.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p))))) (Polynomial.lifts.{u1, u2} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7)))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_liftsₓ'. -/
theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
(hp : p.leadingCoeff ∈ (algebraMap R Rₘ).range) :
@@ -376,10 +352,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
/- warning: is_integral.exists_multiple_integral_of_is_localization -> IsIntegral.exists_multiple_integral_of_isLocalization is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_11 : Algebra.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u2} R Rₘ S (SMulZeroClass.toHasSmul.{u1, u3} R Rₘ (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R Rₘ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R Rₘ (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (Module.toMulActionWithZero.{u1, u3} R Rₘ (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))))) (Algebra.toModule.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)) _inst_7))))) (SMulZeroClass.toHasSmul.{u3, u2} Rₘ S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u3, u2} Rₘ S (MulZeroClass.toHasZero.{u3} Rₘ (MulZeroOneClass.toMulZeroClass.{u3} Rₘ (MonoidWithZero.toMulZeroOneClass.{u3} Rₘ (Semiring.toMonoidWithZero.{u3} Rₘ (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u3, u2} Rₘ S (Semiring.toMonoidWithZero.{u3} Rₘ (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u3, u2} Rₘ S (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_11))))) (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))] (x : S), (IsIntegral.{u3, u2} Rₘ S _inst_5 (CommRing.toRing.{u2} S _inst_2) _inst_11 x) -> (Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (m : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3 (SMul.smul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) S (Submonoid.hasSmul.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) M) m x)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] {Rₘ : Type.{u3}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_11 : Algebra.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u2} R Rₘ S (Algebra.toSMul.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)) _inst_7) (Algebra.toSMul.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_11) (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)] (x : S), (IsIntegral.{u3, u2} Rₘ S _inst_5 (CommRing.toRing.{u2} S _inst_2) _inst_11 x) -> (Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (m : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) S S (instHSMul.{u1, u2} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) S (Submonoid.smul.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) M)) m x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral.exists_multiple_integral_of_is_localization IsIntegral.exists_multiple_integral_of_isLocalizationₓ'. -/
theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [IsScalarTower R Rₘ S]
(x : S) (hx : IsIntegral Rₘ x) : ∃ m : M, IsIntegral R (m • x) :=
@@ -414,10 +387,7 @@ variable [Algebra A C] [IsScalarTower A C L]
open Algebra
/- warning: is_integral_closure.is_fraction_ring_of_algebraic -> IsIntegralClosure.isFractionRing_of_algebraic 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))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_10 : Algebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))] (C : Type.{u3}) [_inst_12 : CommRing.{u3} C] [_inst_13 : IsDomain.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))] [_inst_14 : Algebra.{u3, u2} C L (CommRing.toCommSemiring.{u3} C _inst_12) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u3, u1, u2} C A L _inst_5 (CommRing.toCommSemiring.{u3} C _inst_12) (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))] [_inst_17 : IsScalarTower.{u1, u3, u2} A C L (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)) _inst_16))))) (SMulZeroClass.toHasSmul.{u3, u2} C L (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u3, u2} C L (MulZeroClass.toHasZero.{u3} C (MulZeroOneClass.toMulZeroClass.{u3} C (MonoidWithZero.toMulZeroOneClass.{u3} C (Semiring.toMonoidWithZero.{u3} C (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12)))))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u3, u2} C L (Semiring.toMonoidWithZero.{u3} C (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (Module.toMulActionWithZero.{u3, u2} C L (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))))) (Algebra.toModule.{u3, u2} C L (CommRing.toCommSemiring.{u3} C _inst_12) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_14))))) (SMulZeroClass.toHasSmul.{u1, u2} A L (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u2} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))))) (Algebra.toModule.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_10)))))], (Algebra.IsAlgebraic.{u1, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_10) -> (forall (x : A), (Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (fun (_x : RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) => A -> L) (RingHom.hasCoeToFun.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (algebraMap.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_10) x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))))) -> (Eq.{succ u1} A x (OfNat.ofNat.{u1} A 0 (OfNat.mk.{u1} A 0 (Zero.zero.{u1} A (MulZeroClass.toHasZero.{u1} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_5))))))))))) -> (IsFractionRing.{u3, u2} C _inst_12 L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_14)
-but is expected to have type
- forall (A : Type.{u3}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_10 : Algebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] (C : Type.{u1}) [_inst_12 : CommRing.{u1} C] [_inst_13 : IsDomain.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_14 : Algebra.{u1, u2} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u1, u3, u2} C A L _inst_5 (CommRing.toCommSemiring.{u1} C _inst_12) (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u3, u1} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_17 : IsScalarTower.{u3, u1, u2} A C L (Algebra.toSMul.{u3, u1} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12)) _inst_16) (Algebra.toSMul.{u1, u2} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_14) (Algebra.toSMul.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_10)], (Algebra.IsAlgebraic.{u3, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_10) -> (forall (x : A), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))) (RingHom.instRingHomClassRingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))))))) (algebraMap.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_10) x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommGroupWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Semifield.toCommGroupWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Field.toSemifield.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) _inst_8))))))) -> (Eq.{succ u3} A x (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (CommMonoidWithZero.toZero.{u3} A (CancelCommMonoidWithZero.toCommMonoidWithZero.{u3} A (IsDomain.toCancelCommMonoidWithZero.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5) _inst_6))))))) -> (IsFractionRing.{u1, u2} C _inst_12 L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_14)
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
@@ -442,10 +412,7 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
variable (K L)
/- warning: is_integral_closure.is_fraction_ring_of_finite_extension -> IsIntegralClosure.isFractionRing_of_finite_extension is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) (K : Type.{u2}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u2} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_10 : Algebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_11 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_9] (C : Type.{u4}) [_inst_12 : CommRing.{u4} C] [_inst_13 : IsDomain.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))] [_inst_14 : Algebra.{u4, u3} C L (CommRing.toCommSemiring.{u4} C _inst_12) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u4, u1, u3} C A L _inst_5 (CommRing.toCommSemiring.{u4} C _inst_12) (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))] [_inst_17 : IsScalarTower.{u1, u4, u3} A C L (SMulZeroClass.toHasSmul.{u1, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (Module.toMulActionWithZero.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)) _inst_16))))) (SMulZeroClass.toHasSmul.{u4, u3} C L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} C L (MulZeroClass.toHasZero.{u4} C (MulZeroOneClass.toMulZeroClass.{u4} C (MonoidWithZero.toMulZeroOneClass.{u4} C (Semiring.toMonoidWithZero.{u4} C (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} C L (Semiring.toMonoidWithZero.{u4} C (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u4, u3} C L (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u4, u3} C L (CommRing.toCommSemiring.{u4} C _inst_12) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_14))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_10)))))] [_inst_18 : Algebra.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_19 : IsScalarTower.{u1, u2, u3} A K L (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_9))))) (SMulZeroClass.toHasSmul.{u2, u3} K L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K L (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K L (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u2, u3} K L (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_18))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_10)))))] [_inst_20 : FiniteDimensional.{u2, u3} K L (Field.toDivisionRing.{u2} K _inst_7) (NonUnitalNonAssocRing.toAddCommGroup.{u3} L (NonAssocRing.toNonUnitalNonAssocRing.{u3} L (Ring.toNonAssocRing.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_18)], IsFractionRing.{u4, u3} C _inst_12 L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_14
-but is expected to have type
- forall (A : Type.{u2}) (K : Type.{u4}) [_inst_5 : CommRing.{u2} A] [_inst_6 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u4} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u2, u4} A K (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u4} K (Semifield.toDivisionSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)))] [_inst_10 : Algebra.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_11 : IsFractionRing.{u2, u4} A _inst_5 K (EuclideanDomain.toCommRing.{u4} K (Field.toEuclideanDomain.{u4} K _inst_7)) _inst_9] (C : Type.{u1}) [_inst_12 : CommRing.{u1} C] [_inst_13 : IsDomain.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_14 : Algebra.{u1, u3} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u1, u2, u3} C A L _inst_5 (CommRing.toCommSemiring.{u1} C _inst_12) (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u2, u1} A C (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_17 : IsScalarTower.{u2, u1, u3} A C L (Algebra.toSMul.{u2, u1} A C (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12)) _inst_16) (Algebra.toSMul.{u1, u3} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_14) (Algebra.toSMul.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_10)] [_inst_18 : Algebra.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_19 : IsScalarTower.{u2, u4, u3} A K L (Algebra.toSMul.{u2, u4} A K (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u4} K (Semifield.toDivisionSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7))) _inst_9) (Algebra.toSMul.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_18) (Algebra.toSMul.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_10)] [_inst_20 : FiniteDimensional.{u4, u3} K L (Field.toDivisionRing.{u4} K _inst_7) (Ring.toAddCommGroup.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) (Algebra.toModule.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_18)], IsFractionRing.{u1, u3} C _inst_12 L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_14
+<too large>
Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_finite_extension IsIntegralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
@@ -466,10 +433,7 @@ variable {L : Type _} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
open Algebra
/- warning: integral_closure.is_fraction_ring_of_algebraic -> integralClosure.isFractionRing_of_algebraic 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))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_11 : Algebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))], (Algebra.IsAlgebraic.{u1, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_11) -> (forall (x : A), (Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (fun (_x : RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) => A -> L) (RingHom.hasCoeToFun.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (algebraMap.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_11) x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))))) -> (Eq.{succ u1} A x (OfNat.ofNat.{u1} A 0 (OfNat.mk.{u1} A 0 (Zero.zero.{u1} A (MulZeroClass.toHasZero.{u1} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_5))))))))))) -> (IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) L (Subalgebra.setLike.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11)) (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) (Subalgebra.toCommRing.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11 (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) (Subalgebra.toAlgebra.{u2, u1, u2} L A L (CommRing.toCommSemiring.{u1} A _inst_5) (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11 (Algebra.id.{u2} L (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)))
-but is expected to have type
- forall {A : Type.{u2}} [_inst_5 : CommRing.{u2} A] [_inst_6 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))] {L : Type.{u1}} [_inst_8 : Field.{u1} L] [_inst_11 : Algebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))], (Algebra.IsAlgebraic.{u2, u1} A L _inst_5 (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_8)) _inst_11) -> (forall (x : A), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))) (RingHom.instRingHomClassRingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))))))) (algebraMap.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))) _inst_11) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommGroupWithZero.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Semifield.toCommGroupWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Field.toSemifield.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) _inst_8))))))) -> (Eq.{succ u2} A x (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} A (IsDomain.toCancelCommMonoidWithZero.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5) _inst_6))))))) -> (IsFractionRing.{u1, u1} (Subtype.{succ u1} L (fun (x : L) => Membership.mem.{u1, u1} L (Subalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11) L (Subalgebra.instSetLikeSubalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11)) x (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11))) (Subalgebra.toCommRing.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11 (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) (Subalgebra.toAlgebra.{u1, u2, u1} L A L (CommRing.toCommSemiring.{u2} A _inst_5) (Semifield.toCommSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11 (Algebra.id.{u1} L (Semifield.toCommSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))) (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11)))
+<too large>
Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_algebraic integralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
@@ -481,10 +445,7 @@ theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
variable (K L)
/- warning: integral_closure.is_fraction_ring_of_finite_extension -> integralClosure.isFractionRing_of_finite_extension is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u2} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_10 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_9] [_inst_11 : Algebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_12 : Algebra.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K L (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_9))))) (SMulZeroClass.toHasSmul.{u2, u3} K L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K L (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K L (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u2, u3} K L (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_11)))))] [_inst_14 : FiniteDimensional.{u2, u3} K L (Field.toDivisionRing.{u2} K _inst_7) (NonUnitalNonAssocRing.toAddCommGroup.{u3} L (NonAssocRing.toNonUnitalNonAssocRing.{u3} L (Ring.toNonAssocRing.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_12)], IsFractionRing.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Subalgebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Subalgebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11) L (Subalgebra.setLike.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11)) (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11)) (Subalgebra.toCommRing.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11 (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) (Subalgebra.toAlgebra.{u3, u1, u3} L A L (CommRing.toCommSemiring.{u1} A _inst_5) (Semifield.toCommSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11 (Algebra.id.{u3} L (Semifield.toCommSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11))
-but is expected to have type
- forall {A : Type.{u3}} (K : Type.{u1}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] (L : Type.{u2}) [_inst_7 : Field.{u1} K] [_inst_8 : Field.{u2} L] [_inst_9 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_10 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_9] [_inst_11 : Algebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_12 : Algebra.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K L (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_9) (Algebra.toSMul.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_12) (Algebra.toSMul.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_11)] [_inst_14 : FiniteDimensional.{u1, u2} K L (Field.toDivisionRing.{u1} K _inst_7) (Ring.toAddCommGroup.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) (Algebra.toModule.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_12)], IsFractionRing.{u2, u2} (Subtype.{succ u2} L (fun (x : L) => Membership.mem.{u2, u2} L (Subalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) (SetLike.instMembership.{u2, u2} (Subalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) L (Subalgebra.instSetLikeSubalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11)) x (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11))) (Subalgebra.toCommRing.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11 (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) (Subalgebra.toAlgebra.{u2, u3, u2} L A L (CommRing.toCommSemiring.{u3} A _inst_5) (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11 (Algebra.id.{u2} L (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11))
+<too large>
Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_finite_extension integralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
@@ -500,10 +461,7 @@ namespace IsFractionRing
variable (R S K)
/- warning: is_fraction_ring.is_algebraic_iff' -> IsFractionRing.isAlgebraic_iff' is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (S : Type.{u2}) [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] (K : Type.{u3}) [_inst_7 : Field.{u3} K] [_inst_8 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_9 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_10 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))] [_inst_11 : Algebra.{u2, u3} S K (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))] [_inst_12 : NoZeroSMulDivisors.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u3} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} K (NonAssocRing.toNonUnitalNonAssocRing.{u3} K (Ring.toNonAssocRing.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))) (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_10)))))] [_inst_13 : IsFractionRing.{u2, u3} S _inst_2 K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_7)) _inst_11] [_inst_14 : IsScalarTower.{u1, u2, u3} R S K (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} S K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S K (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S K (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u2, u3} S K (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u2, u3} S K (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_11))))) (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_10)))))], Iff (Algebra.IsAlgebraic.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3) (Algebra.IsAlgebraic.{u1, u3} R K _inst_1 (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)) _inst_10)
-but is expected to have type
- forall (R : Type.{u2}) [_inst_1 : CommRing.{u2} R] (S : Type.{u1}) [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] (K : Type.{u3}) [_inst_7 : Field.{u3} K] [_inst_8 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_9 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_10 : Algebra.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7)))] [_inst_11 : Algebra.{u1, u3} S K (CommRing.toCommSemiring.{u1} S _inst_2) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7)))] [_inst_12 : NoZeroSMulDivisors.{u2, u3} R K (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_8))) (CommMonoidWithZero.toZero.{u3} K (CommGroupWithZero.toCommMonoidWithZero.{u3} K (Semifield.toCommGroupWithZero.{u3} K (Field.toSemifield.{u3} K _inst_7)))) (Algebra.toSMul.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_10)] [_inst_13 : IsFractionRing.{u1, u3} S _inst_2 K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_7)) _inst_11] [_inst_14 : IsScalarTower.{u2, u1, u3} R S K (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u3} S K (CommRing.toCommSemiring.{u1} S _inst_2) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_11) (Algebra.toSMul.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_10)], Iff (Algebra.IsAlgebraic.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_2) _inst_3) (Algebra.IsAlgebraic.{u2, u3} R K _inst_1 (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)) _inst_10)
+<too large>
Case conversion may be inaccurate. Consider using '#align is_fraction_ring.is_algebraic_iff' IsFractionRing.isAlgebraic_iff'ₓ'. -/
/-- `S` is algebraic over `R` iff a fraction ring of `S` is algebraic over `R` -/
theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Algebra S K]
@@ -555,10 +513,7 @@ open nonZeroDivisors
variable (R) {S K}
/- warning: is_fraction_ring.ideal_span_singleton_map_subset -> IsFractionRing.ideal_span_singleton_map_subset is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {K : Type.{u3}} {L : Type.{u4}} [_inst_7 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_8 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_9 : Field.{u3} K] [_inst_10 : Field.{u4} L] [_inst_11 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9)))] [_inst_12 : Algebra.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_13 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_14 : IsIntegralClosure.{u2, u1, u4} S R L _inst_1 (CommRing.toCommSemiring.{u2} S _inst_2) (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_12 _inst_13] [_inst_15 : IsFractionRing.{u2, u4} S _inst_2 L (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_13] [_inst_16 : Algebra.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_17 : IsScalarTower.{u1, u2, u4} R S L (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u4} S L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} S L (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} S L (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u2, u4} S L (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13))))) (SMulZeroClass.toHasSmul.{u1, u4} R L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R L (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12)))))] [_inst_18 : IsScalarTower.{u1, u3, u4} R K L (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) _inst_11))))) (SMulZeroClass.toHasSmul.{u3, u4} K L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u3, u4} K L (MulZeroClass.toHasZero.{u3} K (MulZeroOneClass.toMulZeroClass.{u3} K (MonoidWithZero.toMulZeroOneClass.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9))))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u3, u4} K L (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u3, u4} K L (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16))))) (SMulZeroClass.toHasSmul.{u1, u4} R L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R L (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12)))))] {a : S} {b : Set.{u2} S}, (Algebra.IsAlgebraic.{u1, u4} R L _inst_1 (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)) _inst_12) -> (Function.Injective.{succ u1, succ u4} R L (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (RingHom.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => R -> L) (RingHom.hasCoeToFun.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12))) -> (HasSubset.Subset.{u2} (Set.{u2} S) (Set.hasSubset.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) S (Submodule.setLike.{u2, u2} S S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Semiring.toModule.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))))) (Ideal.span.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.hasSingleton.{u2} S) a))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) S (Submodule.setLike.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (Submodule.span.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) b))) -> (HasSubset.Subset.{u4} (Set.{u4} L) (Set.hasSubset.{u4} L) ((fun (a : Type.{u4}) (b : Type.{u4}) [self : HasLiftT.{succ u4, succ u4} a b] => self.0) (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (HasLiftT.mk.{succ u4, succ u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (CoeTCₓ.coe.{succ u4, succ u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (SetLike.Set.hasCoeT.{u4, u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) L (Submodule.setLike.{u4, u4} L L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Semiring.toModule.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))))) (Ideal.span.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) (Singleton.singleton.{u4, u4} L (Set.{u4} L) (Set.hasSingleton.{u4} L) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13) a)))) ((fun (a : Type.{u4}) (b : Type.{u4}) [self : HasLiftT.{succ u4, succ u4} a b] => self.0) (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (HasLiftT.mk.{succ u4, succ u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (CoeTCₓ.coe.{succ u4, succ u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (SetLike.Set.hasCoeT.{u4, u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) L (Submodule.setLike.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16))))) (Submodule.span.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16) (Set.image.{u2, u4} S L (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13)) b))))
-but is expected to have type
- forall (R : Type.{u3}) [_inst_1 : CommRing.{u3} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] {K : Type.{u1}} {L : Type.{u4}} [_inst_7 : IsDomain.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))] [_inst_8 : IsDomain.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_9 : Field.{u1} K] [_inst_10 : Field.{u4} L] [_inst_11 : Algebra.{u3, u1} R K (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)))] [_inst_12 : Algebra.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_13 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_14 : IsIntegralClosure.{u2, u3, u4} S R L _inst_1 (CommRing.toCommSemiring.{u2} S _inst_2) (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_12 _inst_13] [_inst_15 : IsFractionRing.{u2, u4} S _inst_2 L (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_13] [_inst_16 : Algebra.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_17 : IsScalarTower.{u3, u2, u4} R S L (Algebra.toSMul.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (Algebra.toSMul.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13) (Algebra.toSMul.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12)] [_inst_18 : IsScalarTower.{u3, u1, u4} R K L (Algebra.toSMul.{u3, u1} R K (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) _inst_11) (Algebra.toSMul.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16) (Algebra.toSMul.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12)] {a : S} {b : Set.{u2} S}, (Algebra.IsAlgebraic.{u3, u4} R L _inst_1 (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)) _inst_12) -> (Function.Injective.{succ u3, succ u4} R L (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => L) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12))) -> (HasSubset.Subset.{u2} (Set.{u2} S) (Set.instHasSubsetSet.{u2} S) (SetLike.coe.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (Ideal.span.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.instSingletonSet.{u2} S) a))) (SetLike.coe.{u2, u2} (Submodule.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) S (Submodule.setLike.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) (Submodule.span.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) b))) -> (HasSubset.Subset.{u4} (Set.{u4} L) (Set.instHasSubsetSet.{u4} L) (SetLike.coe.{u4, u4} (Ideal.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) L (Submodule.setLike.{u4, u4} L L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (Semiring.toModule.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (Ideal.span.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) (Singleton.singleton.{u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) a) (Set.{u4} L) (Set.instSingletonSet.{u4} L) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13) a)))) (SetLike.coe.{u4, u4} (Submodule.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16)) L (Submodule.setLike.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16)) (Submodule.span.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16) (Set.image.{u2, u4} S L (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13)) b))))
+<too large>
Case conversion may be inaccurate. Consider using '#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subsetₓ'. -/
/-- If the `S`-multiples of `a` are contained in some `R`-span, then `Frac(S)`-multiples of `a`
are contained in the equivalent `Frac(R)`-span. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -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.integral
-! leanprover-community/mathlib commit 831c494092374cfe9f50591ed0ac81a25efc5b86
+! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -21,6 +21,9 @@ import Mathbin.Tactic.RingExp
/-!
# Integral and algebraic elements of a fraction field
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Implementation notes
See `src/ring_theory/localization/basic.lean` for a design overview.
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -158,7 +158,7 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] {R' : Type.{u3}} [_inst_6 : CommRing.{u3} R'] [_inst_7 : Algebra.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_8 : Algebra.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_9 : IsScalarTower.{u1, u2, u3} R S R' (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} S R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S R' (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S R' (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} S R' (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R R' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R R' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7)))))] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) {x : R'}, (Eq.{succ u3} R' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (fun (_x : AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) => (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) -> R') ([anonymous].{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (Polynomial.aeval.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))))) -> (Eq.{succ u3} R' (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> R') ([anonymous].{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))))))))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : CommRing.{u3} R] (M : Submonoid.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_5 : IsLocalization.{u3, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) M S (CommRing.toCommSemiring.{u1} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] [_inst_7 : Algebra.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_8 : Algebra.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_9 : IsScalarTower.{u3, u1, u2} R S R' (Algebra.toSMul.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8) (Algebra.toSMul.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)] (p : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) {x : R'}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (fun (_x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (SMulZeroClass.toSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribMulAction.toDistribSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (SMulZeroClass.toSMul.{u1, u2} S R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u1, u2} S R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8 (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (AlgHom.algHomClass.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8))))) (Polynomial.aeval.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) _inst_6)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (fun (_x : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (SMulZeroClass.toSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toZero.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (SMulZeroClass.toSMul.{u3, u2} R R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u3, u2} R R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7 (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) _inst_6))))))
+ forall {R : Type.{u3}} [_inst_1 : CommRing.{u3} R] (M : Submonoid.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_5 : IsLocalization.{u3, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) M S (CommRing.toCommSemiring.{u1} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] [_inst_7 : Algebra.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_8 : Algebra.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_9 : IsScalarTower.{u3, u1, u2} R S R' (Algebra.toSMul.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8) (Algebra.toSMul.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)] (p : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) {x : R'}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (fun (_x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (SMulZeroClass.toSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribMulAction.toDistribSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (SMulZeroClass.toSMul.{u1, u2} S R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u1, u2} S R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8 (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (AlgHom.algHomClass.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8))))) (Polynomial.aeval.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) _inst_6)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (fun (_x : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (SMulZeroClass.toSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toZero.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (SMulZeroClass.toSMul.{u3, u2} R R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u3, u2} R R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7 (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) _inst_6))))))
Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zeroₓ'. -/
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
@@ -282,7 +282,7 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))} {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_6 : CommRing.{u4} Sₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_2) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))))) -> (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u3, u4} Rₘ Sₘ _inst_5 (CommRing.toRing.{u4} Sₘ _inst_6) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) ((fun (this : LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) M (Submonoid.comap.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (fun (_x : RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) => S -> Sₘ) (RingHom.hasCoeToFun.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (algebraMap.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)) _inst_9) x))
but is expected to have type
- forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))), (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (SMulZeroClass.toSMul.{u4, u3} R S (AddMonoid.toZero.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribSMul.toSMulZeroClass.{u4, u3} R S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribMulAction.toDistribSMul.{u4, u3} R S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u3, max u3 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3 (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3))))) (Polynomial.aeval.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) _inst_2)))))) -> (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)) _inst_9) x))
+ forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))), (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (SMulZeroClass.toSMul.{u4, u3} R S (AddMonoid.toZero.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribSMul.toSMulZeroClass.{u4, u3} R S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribMulAction.toDistribSMul.{u4, u3} R S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u3, max u3 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3 (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3))))) (Polynomial.aeval.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) _inst_2)))))) -> (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)) _inst_9) x))
Case conversion may be inaccurate. Consider using '#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeffₓ'. -/
/-- Given a particular witness to an element being algebraic over an algebra `R → S`,
We can localize to a submonoid containing the leading coefficient to make it integral.
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -47,6 +47,7 @@ variable (M) {S} [IsLocalization M S]
open Classical
+#print IsLocalization.coeffIntegerNormalization /-
/-- `coeff_integer_normalization p` gives the coefficients of the polynomial
`integer_normalization p` -/
noncomputable def coeffIntegerNormalization (p : S[X]) (i : ℕ) : R :=
@@ -56,13 +57,26 @@ noncomputable def coeffIntegerNormalization (p : S[X]) (i : ℕ) : R :=
(p.coeff i) (Finset.mem_image.mpr ⟨i, hi, rfl⟩))
else 0
#align is_localization.coeff_integer_normalization IsLocalization.coeffIntegerNormalization
+-/
+/- warning: is_localization.coeff_integer_normalization_of_not_mem_support -> IsLocalization.coeffIntegerNormalization_of_not_mem_support is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (i : Nat), (Eq.{succ u2} S (Polynomial.coeff.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p i) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))))) -> (Eq.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (i : Nat), (Eq.{succ u2} S (Polynomial.coeff.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p i) (OfNat.ofNat.{u2} S 0 (Zero.toOfNat0.{u2} S (CommMonoidWithZero.toZero.{u2} S (CommSemiring.toCommMonoidWithZero.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) -> (Eq.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_supportₓ'. -/
theorem coeffIntegerNormalization_of_not_mem_support (p : S[X]) (i : ℕ) (h : coeff p i = 0) :
coeffIntegerNormalization M p i = 0 := by
simp only [coeff_integer_normalization, h, mem_support_iff, eq_self_iff_true, not_true, Ne.def,
dif_neg, not_false_iff]
#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_support
+/- warning: is_localization.coeff_integer_normalization_mem_support -> IsLocalization.coeffIntegerNormalization_mem_support is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (i : Nat), (Ne.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))) -> (Membership.Mem.{0, 0} Nat (Finset.{0} Nat) (Finset.hasMem.{0} Nat) i (Polynomial.support.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (i : Nat), (Ne.{succ u1} R (IsLocalization.coeffIntegerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p i) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) -> (Membership.mem.{0, 0} Nat (Finset.{0} Nat) (Finset.instMembershipFinset.{0} Nat) i (Polynomial.support.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p))
+Case conversion may be inaccurate. Consider using '#align is_localization.coeff_integer_normalization_mem_support IsLocalization.coeffIntegerNormalization_mem_supportₓ'. -/
theorem coeffIntegerNormalization_mem_support (p : S[X]) (i : ℕ)
(h : coeffIntegerNormalization M p i ≠ 0) : i ∈ p.support :=
by
@@ -70,19 +84,29 @@ theorem coeffIntegerNormalization_mem_support (p : S[X]) (i : ℕ)
rw [Ne.def, Classical.not_not, coeff_integer_normalization, dif_neg h]
#align is_localization.coeff_integer_normalization_mem_support IsLocalization.coeffIntegerNormalization_mem_support
+#print IsLocalization.integerNormalization /-
/-- `integer_normalization g` normalizes `g` to have integer coefficients
by clearing the denominators -/
noncomputable def integerNormalization (p : S[X]) : R[X] :=
∑ i in p.support, monomial i (coeffIntegerNormalization M p i)
#align is_localization.integer_normalization IsLocalization.integerNormalization
+-/
+#print IsLocalization.integerNormalization_coeff /-
@[simp]
theorem integerNormalization_coeff (p : S[X]) (i : ℕ) :
(integerNormalization M p).coeff i = coeffIntegerNormalization M p i := by
simp (config := { contextual := true }) [integer_normalization, coeff_monomial,
coeff_integer_normalization_of_not_mem_support]
#align is_localization.integer_normalization_coeff IsLocalization.integerNormalization_coeff
+-/
+/- warning: is_localization.integer_normalization_spec -> IsLocalization.integerNormalization_spec is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))), Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (b : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => forall (i : Nat), Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (SMul.smul.{u1, u2} R S (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) b) (Polynomial.coeff.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) p i)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))), Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (b : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => forall (i : Nat), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p) i)) (HSMul.hSMul.{u1, u2, u2} R S S (instHSMul.{u1, u2} R S (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) b) (Polynomial.coeff.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) p i)))
+Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_specₓ'. -/
theorem integerNormalization_spec (p : S[X]) :
∃ b : M, ∀ i, algebraMap R S ((integerNormalization M p).coeff i) = (b : R) • p.coeff i :=
by
@@ -100,6 +124,12 @@ theorem integerNormalization_spec (p : S[X]) :
· exact not_mem_support_iff.mp hi
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
+/- warning: is_localization.integer_normalization_map_to_map -> IsLocalization.integerNormalization_map_to_map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))), Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (b : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => Eq.{succ u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.map.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (SMul.smul.{u1, u2} R (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (SMulZeroClass.toHasSmul.{u1, u2} R (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.zero.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Polynomial.smulZeroClass.{u2, u1} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) R (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) b) p))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] (p : Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))), Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (b : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => Eq.{succ u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.map.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (instHSMul.{u1, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Algebra.toSMul.{u1, u2} R (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3))) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) b) p))
+Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_mapₓ'. -/
theorem integerNormalization_map_to_map (p : S[X]) :
∃ b : M, (integerNormalization M p).map (algebraMap R S) = (b : R) • p :=
let ⟨b, hb⟩ := integerNormalization_spec M p
@@ -111,6 +141,12 @@ theorem integerNormalization_map_to_map (p : S[X]) :
variable {R' : Type _} [CommRing R']
+/- warning: is_localization.integer_normalization_eval₂_eq_zero -> IsLocalization.integerNormalization_eval₂_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] {R' : Type.{u3}} [_inst_6 : CommRing.{u3} R'] (g : RingHom.{u2, u3} S R' (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))) (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) {x : R'}, (Eq.{succ u3} R' (Polynomial.eval₂.{u2, u3} S R' (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) g x p) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))))) -> (Eq.{succ u3} R' (Polynomial.eval₂.{u1, u3} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (RingHom.comp.{u1, u2, u3} R S R' (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))) g (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) x (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u1, u3} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] [_inst_5 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] (g : RingHom.{u3, u2} S R' (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (p : Polynomial.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) {x : R'}, (Eq.{succ u2} R' (Polynomial.eval₂.{u3, u2} S R' (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) g x p) (OfNat.ofNat.{u2} R' 0 (Zero.toOfNat0.{u2} R' (CommMonoidWithZero.toZero.{u2} R' (CommSemiring.toCommMonoidWithZero.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) -> (Eq.{succ u2} R' (Polynomial.eval₂.{u1, u2} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (RingHom.comp.{u1, u3, u2} R S R' (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))) g (algebraMap.{u1, u3} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) x (IsLocalization.integerNormalization.{u1, u3} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} R' 0 (Zero.toOfNat0.{u2} R' (CommMonoidWithZero.toZero.{u2} R' (CommSemiring.toCommMonoidWithZero.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))
+Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zeroₓ'. -/
theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'}
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
let ⟨b, hb⟩ := integerNormalization_map_to_map M p
@@ -118,6 +154,12 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
(by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, MulZeroClass.mul_zero])
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
+/- warning: is_localization.integer_normalization_aeval_eq_zero -> IsLocalization.integerNormalization_aeval_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_5 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_3] {R' : Type.{u3}} [_inst_6 : CommRing.{u3} R'] [_inst_7 : Algebra.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_8 : Algebra.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))] [_inst_9 : IsScalarTower.{u1, u2, u3} R S R' (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} S R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S R' (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S R' (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} S R' (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R R' (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R R' (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R R' (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} R' (AddMonoid.toAddZeroClass.{u3} R' (AddCommMonoid.toAddMonoid.{u3} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R R' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R' (Semiring.toNonAssocSemiring.{u3} R' (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))) (Algebra.toModule.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7)))))] (p : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) {x : R'}, (Eq.{succ u3} R' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (fun (_x : AlgHom.{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) => (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) -> R') ([anonymous].{u2, u2, u3} S (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) R' (CommRing.toCommSemiring.{u2} S _inst_2) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u2, u2} S S (CommRing.toCommSemiring.{u2} S _inst_2) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) _inst_8) (Polynomial.aeval.{u2, u3} S R' (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6)))))))))) -> (Eq.{succ u3} R' (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (fun (_x : AlgHom.{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> R') ([anonymous].{u1, u1, u3} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) R' (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_7) (Polynomial.aeval.{u1, u3} R R' (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} R' (CommRing.toRing.{u3} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u1, u2} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u3} R' 0 (OfNat.mk.{u3} R' 0 (Zero.zero.{u3} R' (MulZeroClass.toHasZero.{u3} R' (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R' (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R' (NonAssocRing.toNonUnitalNonAssocRing.{u3} R' (Ring.toNonAssocRing.{u3} R' (CommRing.toRing.{u3} R' _inst_6))))))))))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : CommRing.{u3} R] (M : Submonoid.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_5 : IsLocalization.{u3, u1} R (CommRing.toCommSemiring.{u3} R _inst_1) M S (CommRing.toCommSemiring.{u1} S _inst_2) _inst_3] {R' : Type.{u2}} [_inst_6 : CommRing.{u2} R'] [_inst_7 : Algebra.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_8 : Algebra.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))] [_inst_9 : IsScalarTower.{u3, u1, u2} R S R' (Algebra.toSMul.{u3, u1} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8) (Algebra.toSMul.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)] (p : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) {x : R'}, (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (fun (_x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (SMulZeroClass.toSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (DistribMulAction.toDistribSMul.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (SMulZeroClass.toSMul.{u1, u2} S R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u1, u2} S R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))))) (Algebra.toModule.{u1, u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))))) (Module.toDistribMulAction.{u1, u2} S R' (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8 (AlgHom.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8) (AlgHom.algHomClass.{u1, u1, u2} S (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) R' (CommRing.toCommSemiring.{u1} S _inst_2) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u1, u1} S S (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) _inst_8))))) (Polynomial.aeval.{u1, u2} S R' (CommRing.toCommSemiring.{u1} S _inst_2) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_8 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))) => R') p) _inst_6)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (fun (_x : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') _x) (SMulHomClass.toFunLike.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (SMulZeroClass.toSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toZero.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))))) (SMulZeroClass.toSMul.{u3, u2} R R' (AddMonoid.toZero.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R R' (AddMonoid.toAddZeroClass.{u2} R' (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))))) (DistribMulAction.toDistribSMul.{u3, u2} R R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} R' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u3, u3, u3, u2} (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)))) (Module.toDistribMulAction.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))))) (Algebra.toModule.{u3, u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (Module.toDistribMulAction.{u3, u2} R R' (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6))))) (Algebra.toModule.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u2, max u2 u3} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7 (AlgHom.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7) (AlgHom.algHomClass.{u3, u3, u2} R (Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) R' (CommRing.toCommSemiring.{u3} R _inst_1) (Polynomial.semiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) (Polynomial.algebraOfAlgebra.{u3, u3} R R (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (Algebra.id.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) _inst_7))))) (Polynomial.aeval.{u3, u2} R R' (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} R' (CommRing.toCommSemiring.{u2} R' _inst_6)) _inst_7 x) (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommSemiring.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) (CommRing.toCommSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) => R') (IsLocalization.integerNormalization.{u3, u1} R _inst_1 M S _inst_2 _inst_3 _inst_5 p)) _inst_6))))))
+Case conversion may be inaccurate. Consider using '#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zeroₓ'. -/
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
rw [aeval_def, IsScalarTower.algebraMap_eq R S R', integer_normalization_eval₂_eq_zero _ _ _ hx]
@@ -135,6 +177,7 @@ variable {A K C : Type _} [CommRing A] [IsDomain A] [Field K] [Algebra A K] [IsF
variable [CommRing C]
+#print IsFractionRing.integerNormalization_eq_zero_iff /-
theorem integerNormalization_eq_zero_iff {p : K[X]} :
integerNormalization (nonZeroDivisors A) p = 0 ↔ p = 0 :=
by
@@ -152,9 +195,16 @@ theorem integerNormalization_eq_zero_iff {p : K[X]} :
apply mem_non_zero_divisors_iff_ne_zero.mp nonzero
exact to_map_eq_zero_iff.mp h
#align is_fraction_ring.integer_normalization_eq_zero_iff IsFractionRing.integerNormalization_eq_zero_iff
+-/
variable (A K C)
+/- warning: is_fraction_ring.is_algebraic_iff -> IsFractionRing.isAlgebraic_iff is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) (K : Type.{u2}) (C : Type.{u3}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] [_inst_7 : Field.{u2} K] [_inst_8 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_9 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u3} C] [_inst_11 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_12 : Algebra.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K C (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} K C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K C (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K C (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u2, u3} K C (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_11)))))] {x : C}, Iff (IsAlgebraic.{u1, u3} A C _inst_5 (CommRing.toRing.{u3} C _inst_10) _inst_11 x) (IsAlgebraic.{u2, u3} K C (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) (CommRing.toRing.{u3} C _inst_10) _inst_12 x)
+but is expected to have type
+ forall (A : Type.{u3}) (K : Type.{u1}) (C : Type.{u2}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] [_inst_7 : Field.{u1} K] [_inst_8 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_9 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u2} C] [_inst_11 : Algebra.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_12 : Algebra.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K C (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_8) (Algebra.toSMul.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_12) (Algebra.toSMul.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_11)] {x : C}, Iff (IsAlgebraic.{u3, u2} A C _inst_5 (CommRing.toRing.{u2} C _inst_10) _inst_11 x) (IsAlgebraic.{u1, u2} K C (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) (CommRing.toRing.{u2} C _inst_10) _inst_12 x)
+Case conversion may be inaccurate. Consider using '#align is_fraction_ring.is_algebraic_iff IsFractionRing.isAlgebraic_iffₓ'. -/
/-- An element of a ring is algebraic over the ring `A` iff it is algebraic
over the field of fractions of `A`.
-/
@@ -174,6 +224,12 @@ theorem isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] {x : C
variable {A K C}
+/- warning: is_fraction_ring.comap_is_algebraic_iff -> IsFractionRing.comap_isAlgebraic_iff is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {K : Type.{u2}} {C : Type.{u3}} [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] [_inst_7 : Field.{u2} K] [_inst_8 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_9 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u3} C] [_inst_11 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_12 : Algebra.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K C (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u3} K C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K C (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K C (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u2, u3} K C (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u2, u3} K C (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_10)) _inst_11)))))], Iff (Algebra.IsAlgebraic.{u1, u3} A C _inst_5 (CommRing.toRing.{u3} C _inst_10) _inst_11) (Algebra.IsAlgebraic.{u2, u3} K C (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) (CommRing.toRing.{u3} C _inst_10) _inst_12)
+but is expected to have type
+ forall {A : Type.{u3}} {K : Type.{u1}} {C : Type.{u2}} [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] [_inst_7 : Field.{u1} K] [_inst_8 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_9 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_8] [_inst_10 : CommRing.{u2} C] [_inst_11 : Algebra.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_12 : Algebra.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K C (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_8) (Algebra.toSMul.{u1, u2} K C (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_12) (Algebra.toSMul.{u3, u2} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_10)) _inst_11)], Iff (Algebra.IsAlgebraic.{u3, u2} A C _inst_5 (CommRing.toRing.{u2} C _inst_10) _inst_11) (Algebra.IsAlgebraic.{u1, u2} K C (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) (CommRing.toRing.{u2} C _inst_10) _inst_12)
+Case conversion may be inaccurate. Consider using '#align is_fraction_ring.comap_is_algebraic_iff IsFractionRing.comap_isAlgebraic_iffₓ'. -/
/-- A ring is algebraic over the ring `A` iff it is algebraic over the field of fractions of `A`.
-/
theorem comap_isAlgebraic_iff [Algebra A C] [Algebra K C] [IsScalarTower A K C] :
@@ -197,6 +253,12 @@ variable {S M}
open Polynomial
+/- warning: ring_hom.is_integral_elem_localization_at_leading_coeff -> RingHom.isIntegralElem_localization_at_leadingCoeff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} [_inst_11 : CommRing.{u1} R] [_inst_12 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (x : S) (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11))), (Eq.{succ u2} S (Polynomial.eval₂.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_12)) f x p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))))) -> (forall (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))), (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_11)) p) M) -> (forall {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_13 : CommRing.{u3} Rₘ] [_inst_14 : CommRing.{u4} Sₘ] [_inst_15 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_11) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_13))] [_inst_16 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_13) _inst_15] [_inst_17 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_12) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14))] [_inst_18 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_14) _inst_17], RingHom.IsIntegralElem.{u3, u4} Rₘ Sₘ _inst_13 (CommRing.toRing.{u4} Sₘ _inst_14) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_13) _inst_15 S (CommRing.toCommSemiring.{u2} S _inst_12) _inst_16 (Submonoid.map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_14) _inst_17 _inst_18 f (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))))) f)) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) (fun (_x : RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) => S -> Sₘ) (RingHom.hasCoeToFun.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)))) (algebraMap.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_12) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_14)) _inst_17) x)))
+but is expected to have type
+ forall {R : Type.{u4}} {S : Type.{u3}} [_inst_11 : CommRing.{u4} R] [_inst_12 : CommRing.{u3} S] (f : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (x : S) (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))), (Eq.{succ u3} S (Polynomial.eval₂.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)) f x p) (OfNat.ofNat.{u3} S 0 (Zero.toOfNat0.{u3} S (CommMonoidWithZero.toZero.{u3} S (CommSemiring.toCommMonoidWithZero.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))))) -> (forall (M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))), (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11)) p) M) -> (forall {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_13 : CommRing.{u2} Rₘ] [_inst_14 : CommRing.{u1} Sₘ] [_inst_15 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_11) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13))] [_inst_16 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13) _inst_15] [_inst_17 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_12) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))] [_inst_18 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_12) (Submonoid.map.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14) _inst_17], RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_13 (CommRing.toRing.{u1} Sₘ _inst_14) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_11) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_13) _inst_15 S (CommRing.toCommSemiring.{u3} S _inst_12) _inst_16 (Submonoid.map.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14) _inst_17 _inst_18 f (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_11))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) f)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_12))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_12) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_14)) _inst_17) x)))
+Case conversion may be inaccurate. Consider using '#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeffₓ'. -/
theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [CommRing R] [CommRing S]
(f : R →+* S) (x : S) (p : R[X]) (hf : p.eval₂ f x = 0) (M : Submonoid R)
(hM : p.leadingCoeff ∈ M) {Rₘ Sₘ : Type _} [CommRing Rₘ] [CommRing Sₘ] [Algebra R Rₘ]
@@ -216,6 +278,12 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
exact trans (congr_arg (algebraMap S Sₘ) hf) (RingHom.map_zero _)
#align ring_hom.is_integral_elem_localization_at_leading_coeff RingHom.isIntegralElem_localization_at_leadingCoeff
+/- warning: is_integral_localization_at_leading_coeff -> is_integral_localization_at_leadingCoeff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))} {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_6 : CommRing.{u4} Sₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_2) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))), (Eq.{succ u2} S (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> S) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) S (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u2} S 0 (OfNat.mk.{u2} S 0 (Zero.zero.{u2} S (MulZeroClass.toHasZero.{u2} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))))) -> (Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.leadingCoeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u3, u4} Rₘ Sₘ _inst_5 (CommRing.toRing.{u4} Sₘ _inst_6) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) ((fun (this : LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) M (Submonoid.comap.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (fun (_x : RingHom.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) => S -> Sₘ) (RingHom.hasCoeToFun.{u2, u4} S Sₘ (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} Sₘ (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)))) (algebraMap.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6)) _inst_9) x))
+but is expected to have type
+ forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9] {x : S} (p : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))), (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) _x) (SMulHomClass.toFunLike.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))) (SMulZeroClass.toSMul.{u4, u3} R S (AddMonoid.toZero.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribSMul.toSMulZeroClass.{u4, u3} R S (AddMonoid.toAddZeroClass.{u3} S (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))))) (DistribMulAction.toDistribSMul.{u4, u3} R S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u3} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u4, u4, u3} (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (Module.toDistribMulAction.{u4, u3} R S (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (Algebra.toModule.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u3, max u3 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3 (AlgHom.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u4, u4, u3} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) S (CommRing.toCommSemiring.{u4} R _inst_1) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) _inst_3))))) (Polynomial.aeval.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 x) p) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommMonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommSemiring.toCommMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) (CommRing.toCommSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) => S) p) _inst_2)))))) -> (Membership.mem.{u4, u4} R (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (SetLike.instMembership.{u4, u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) R (Submonoid.instSetLikeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))))) (Polynomial.leadingCoeff.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) p) M) -> (RingHom.IsIntegralElem.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Sₘ) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} Sₘ (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)))) S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))) (RingHom.instRingHomClassRingHom.{u3, u1} S Sₘ (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (Semiring.toNonAssocSemiring.{u1} Sₘ (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))))))) (algebraMap.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6)) _inst_9) x))
+Case conversion may be inaccurate. Consider using '#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeffₓ'. -/
/-- Given a particular witness to an element being algebraic over an algebra `R → S`,
We can localize to a submonoid containing the leading coefficient to make it integral.
Explicitly, the map between the localizations will be an integral ring morphism -/
@@ -228,6 +296,12 @@ theorem is_integral_localization_at_leadingCoeff {x : S} (p : R[X]) (hp : aeval
(algebraMap R S).isIntegralElem_localization_at_leadingCoeff x p hp M hM
#align is_integral_localization_at_leading_coeff is_integral_localization_at_leadingCoeff
+/- warning: is_integral_localization -> isIntegral_localization is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))} {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} {Sₘ : Type.{u4}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_6 : CommRing.{u4} Sₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u2, u4} S Sₘ (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} Sₘ (CommRing.toRing.{u4} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u2, u4} S (CommRing.toCommSemiring.{u2} S _inst_2) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9], (Algebra.IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3) -> (RingHom.IsIntegral.{u3, u4} Rₘ Sₘ _inst_5 (CommRing.toRing.{u4} Sₘ _inst_6) (IsLocalization.map.{u1, u3, u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u2} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u4} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) ((fun (this : LE.le.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) M (Submonoid.comap.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{u1, u2, max u1 u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) M (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (RingHom.ringHomClass.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (algebraMap.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))
+but is expected to have type
+ forall {R : Type.{u4}} [_inst_1 : CommRing.{u4} R] {M : Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))} {S : Type.{u3}} [_inst_2 : CommRing.{u3} S] [_inst_3 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))] {Rₘ : Type.{u2}} {Sₘ : Type.{u1}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_6 : CommRing.{u1} Sₘ] [_inst_7 : Algebra.{u4, u2} R Rₘ (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u4, u2} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] [_inst_9 : Algebra.{u3, u1} S Sₘ (CommRing.toCommSemiring.{u3} S _inst_2) (CommSemiring.toSemiring.{u1} Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6))] [_inst_10 : IsLocalization.{u3, u1} S (CommRing.toCommSemiring.{u3} S _inst_2) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9], (Algebra.IsIntegral.{u4, u3} R S _inst_1 (CommRing.toRing.{u3} S _inst_2) _inst_3) -> (RingHom.IsIntegral.{u2, u1} Rₘ Sₘ _inst_5 (CommRing.toRing.{u1} Sₘ _inst_6) (IsLocalization.map.{u4, u2, u3, u1} R (CommRing.toCommSemiring.{u4} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7 S (CommRing.toCommSemiring.{u3} S _inst_2) _inst_8 (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M) Sₘ (CommRing.toCommSemiring.{u1} Sₘ _inst_6) _inst_9 _inst_10 (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) ([mdata let_fun:1 (fun (this : LE.le.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Preorder.toLE.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (PartialOrder.toPreorder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u4} (Submonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u4} R (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))))))))) M (Submonoid.comap.{u4, u3, max u4 u3} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3) (Algebra.algebraMapSubmonoid.{u4, u3} R (CommRing.toCommSemiring.{u4} R _inst_1) S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3 M))) => this) (Submonoid.le_comap_map.{max u4 u3, u3, u4} R S (MulZeroOneClass.toMulOneClass.{u4} R (NonAssocSemiring.toMulZeroOneClass.{u4} R (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))))) (MulZeroOneClass.toMulOneClass.{u3} S (NonAssocSemiring.toMulZeroOneClass.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) M (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) (RingHomClass.toMonoidHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)))) R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2))))) (algebraMap.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_2)) _inst_3))])))
+Case conversion may be inaccurate. Consider using '#align is_integral_localization isIntegral_localizationₓ'. -/
/-- If `R → S` is an integral extension, `M` is a submonoid of `R`,
`Rₘ` is the localization of `R` at `M`,
and `Sₘ` is the localization of `S` at the image of `M` under the extension map,
@@ -252,6 +326,12 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
#align is_integral_localization isIntegral_localization
+/- warning: is_integral_localization' -> isIntegral_localization' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} [_inst_11 : CommRing.{u1} R] [_inst_12 : CommRing.{u2} S] {f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))}, (RingHom.IsIntegral.{u1, u2} R S _inst_11 (CommRing.toRing.{u2} S _inst_12) f) -> (forall (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11)))))), RingHom.IsIntegral.{u1, u2} (Localization.{u1} R (CommRing.toCommMonoid.{u1} R _inst_11) M) (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commRing.{u1} R _inst_11 M) (CommRing.toRing.{u2} (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commRing.{u2} S _inst_12 (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M))) (IsLocalization.map.{u1, u1, u2, u2} R (CommRing.toCommSemiring.{u1} R _inst_11) M (Localization.{u1} R (CommRing.toCommMonoid.{u1} R _inst_11) M) (Localization.commSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M) (Localization.algebra.{u1, u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M R (CommRing.toCommSemiring.{u1} R _inst_11) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11))) S (CommRing.toCommSemiring.{u2} S _inst_12) (Localization.isLocalization.{u1} R (CommRing.toCommSemiring.{u1} R _inst_11) M) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M) (Localization.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.commSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) (Localization.algebra.{u2, u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (Monoid.toMulOneClass.{u2} S (CommMonoid.toMonoid.{u2} S (CommRing.toCommMonoid.{u2} S _inst_12))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M) S (CommRing.toCommSemiring.{u2} S _inst_12) (Algebra.id.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12))) (Localization.isLocalization.{u2} S (CommRing.toCommSemiring.{u2} S _inst_12) (Submonoid.map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f) M)) f (Submonoid.le_comap_map.{u1, u2, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) M (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.monoidHomClass.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MonoidHom.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} R S (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u2} S (NonAssocSemiring.toMulZeroOneClass.{u2} S (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))) R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12))) (RingHom.ringHomClass.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_11))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_12)))))))) f))))
+but is expected to have type
+ forall {R : Type.{u2}} {S : Type.{u1}} [_inst_11 : CommRing.{u2} R] [_inst_12 : CommRing.{u1} S] {f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))}, (RingHom.IsIntegral.{u2, u1} R S _inst_11 (CommRing.toRing.{u1} S _inst_12) f) -> (forall (M : Submonoid.{u2} R (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11)))))), RingHom.IsIntegral.{u2, u1} (Localization.{u2} R (CommRing.toCommMonoid.{u2} R _inst_11) M) (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommRingLocalizationToCommMonoid.{u2} R _inst_11 M) (CommRing.toRing.{u1} (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommRingLocalizationToCommMonoid.{u1} S _inst_12 (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M))) (IsLocalization.map.{u2, u2, u1, u1} R (CommRing.toCommSemiring.{u2} R _inst_11) M (Localization.{u2} R (CommRing.toCommMonoid.{u2} R _inst_11) M) (Localization.instCommSemiringLocalizationToCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u2, u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M R (CommRing.toCommSemiring.{u2} R _inst_11) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) S (CommRing.toCommSemiring.{u1} S _inst_12) (Localization.isLocalization.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11) M) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M) (Localization.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S (CommRing.toCommMonoid.{u1} S _inst_12))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M) S (CommRing.toCommSemiring.{u1} S _inst_12) (Algebra.id.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (Localization.isLocalization.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12) (Submonoid.map.{u2, u1, max u2 u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f) M)) f (Submonoid.le_comap_map.{max u2 u1, u1, u2} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) M (MonoidHom.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHom.monoidHomClass.{u2, u1} R S (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))))) (MonoidHomClass.toMonoidHom.{u2, u1, max u2 u1} R S (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) (MulZeroOneClass.toMulOneClass.{u2} R (NonAssocSemiring.toMulZeroOneClass.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))))) (MulZeroOneClass.toMulOneClass.{u1} S (NonAssocSemiring.toMulZeroOneClass.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12)))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_11))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_12))))) f))))
+Case conversion may be inaccurate. Consider using '#align is_integral_localization' isIntegral_localization'ₓ'. -/
theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R →+* S}
(hf : f.IsIntegral) (M : Submonoid R) :
(map (Localization (M.map (f : R →* S))) f
@@ -262,6 +342,12 @@ theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R
variable (M)
+/- warning: is_localization.scale_roots_common_denom_mem_lifts -> IsLocalization.scaleRoots_commonDenom_mem_lifts is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {Rₘ : Type.{u2}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_7 : Algebra.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] (p : Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))), (Membership.Mem.{u2, u2} Rₘ (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (SetLike.hasMem.{u2, u2} (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) Rₘ (Subring.setLike.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.leadingCoeff.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p) (RingHom.range.{u1, u2} R Rₘ (CommRing.toRing.{u1} R _inst_1) (CommRing.toRing.{u2} Rₘ _inst_5) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7))) -> (Membership.Mem.{u2, u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Subsemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))))) (SetLike.hasMem.{u2, u2} (Subsemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))))) (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Subsemiring.setLike.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))))) (Polynomial.scaleRoots.{u2} Rₘ _inst_5 p (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) (fun (_x : RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) => R -> Rₘ) (RingHom.hasCoeToFun.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)))) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7) ((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 (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) R (coeSubtype.{succ u1} R (fun (x : R) => Membership.Mem.{u1, u1} R (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) x M))))) (IsLocalization.commonDenom.{u1, u2, 0} R _inst_1 M Rₘ _inst_5 _inst_7 _inst_8 Nat (Polynomial.support.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p) (Polynomial.coeff.{u2} Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) p))))) (Polynomial.lifts.{u1, u2} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) Rₘ (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) _inst_7)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {Rₘ : Type.{u2}} [_inst_5 : CommRing.{u2} Rₘ] [_inst_7 : Algebra.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5) _inst_7] (p : Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))), (Membership.mem.{u2, u2} Rₘ (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) (SetLike.instMembership.{u2, u2} (Subring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5)) Rₘ (Subring.instSetLikeSubring.{u2} Rₘ (CommRing.toRing.{u2} Rₘ _inst_5))) (Polynomial.leadingCoeff.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p) (RingHom.range.{u1, u2} R Rₘ (CommRing.toRing.{u1} R _inst_1) (CommRing.toRing.{u2} Rₘ _inst_5) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7))) -> (Membership.mem.{u2, u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Subsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (SetLike.instMembership.{u2, u2} (Subsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Subsemiring.instSetLikeSubsemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (Polynomial.semiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))))) (Polynomial.scaleRoots.{u2} Rₘ _inst_5 p (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Rₘ) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} Rₘ (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} Rₘ (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)))) R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))) (RingHom.instRingHomClassRingHom.{u1, u2} R Rₘ (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5))))))) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7) (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1)))))) M)) (IsLocalization.commonDenom.{u1, u2, 0} R _inst_1 M Rₘ _inst_5 _inst_7 _inst_8 Nat (Polynomial.support.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p) (Polynomial.coeff.{u2} Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) p))))) (Polynomial.lifts.{u1, u2} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) Rₘ (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) (algebraMap.{u1, u2} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} Rₘ (CommRing.toCommSemiring.{u2} Rₘ _inst_5)) _inst_7)))
+Case conversion may be inaccurate. Consider using '#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_liftsₓ'. -/
theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
(hp : p.leadingCoeff ∈ (algebraMap R Rₘ).range) :
p.scaleRoots (algebraMap R Rₘ <| IsLocalization.commonDenom M p.support p.coeff) ∈
@@ -286,6 +372,12 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
+/- warning: is_integral.exists_multiple_integral_of_is_localization -> IsIntegral.exists_multiple_integral_of_isLocalization is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {Rₘ : Type.{u3}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_11 : Algebra.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u2} R Rₘ S (SMulZeroClass.toHasSmul.{u1, u3} R Rₘ (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R Rₘ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R Rₘ (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} Rₘ (AddMonoid.toAddZeroClass.{u3} Rₘ (AddCommMonoid.toAddMonoid.{u3} Rₘ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)))))))) (Module.toMulActionWithZero.{u1, u3} R Rₘ (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} Rₘ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} Rₘ (Semiring.toNonAssocSemiring.{u3} Rₘ (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5))))) (Algebra.toModule.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} Rₘ (CommRing.toRing.{u3} Rₘ _inst_5)) _inst_7))))) (SMulZeroClass.toHasSmul.{u3, u2} Rₘ S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u3, u2} Rₘ S (MulZeroClass.toHasZero.{u3} Rₘ (MulZeroOneClass.toMulZeroClass.{u3} Rₘ (MonoidWithZero.toMulZeroOneClass.{u3} Rₘ (Semiring.toMonoidWithZero.{u3} Rₘ (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u3, u2} Rₘ S (Semiring.toMonoidWithZero.{u3} Rₘ (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u3, u2} Rₘ S (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_11))))) (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)))))] (x : S), (IsIntegral.{u3, u2} Rₘ S _inst_5 (CommRing.toRing.{u2} S _inst_2) _inst_11 x) -> (Exists.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) (fun (m : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) => IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3 (SMul.smul.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) R (Submonoid.setLike.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) M) S (Submonoid.hasSmul.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) M) m x)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] (M : Submonoid.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] {Rₘ : Type.{u3}} [_inst_5 : CommRing.{u3} Rₘ] [_inst_7 : Algebra.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5))] [_inst_8 : IsLocalization.{u1, u3} R (CommRing.toCommSemiring.{u1} R _inst_1) M Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5) _inst_7] [_inst_11 : Algebra.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_12 : IsScalarTower.{u1, u3, u2} R Rₘ S (Algebra.toSMul.{u1, u3} R Rₘ (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} Rₘ (CommRing.toCommSemiring.{u3} Rₘ _inst_5)) _inst_7) (Algebra.toSMul.{u3, u2} Rₘ S (CommRing.toCommSemiring.{u3} Rₘ _inst_5) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_11) (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)] (x : S), (IsIntegral.{u3, u2} Rₘ S _inst_5 (CommRing.toRing.{u2} S _inst_2) _inst_11 x) -> (Exists.{succ u1} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) (fun (m : 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) => IsIntegral.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) S S (instHSMul.{u1, u2} (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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} R _inst_1))))))) x M)) S (Submonoid.smul.{u1, u2} R S (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Algebra.toSMul.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) M)) m x)))
+Case conversion may be inaccurate. Consider using '#align is_integral.exists_multiple_integral_of_is_localization IsIntegral.exists_multiple_integral_of_isLocalizationₓ'. -/
theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [IsScalarTower R Rₘ S]
(x : S) (hx : IsIntegral Rₘ x) : ∃ m : M, IsIntegral R (m • x) :=
by
@@ -318,6 +410,12 @@ variable [Algebra A C] [IsScalarTower A C L]
open Algebra
+/- warning: is_integral_closure.is_fraction_ring_of_algebraic -> IsIntegralClosure.isFractionRing_of_algebraic 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))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_10 : Algebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))] (C : Type.{u3}) [_inst_12 : CommRing.{u3} C] [_inst_13 : IsDomain.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))] [_inst_14 : Algebra.{u3, u2} C L (CommRing.toCommSemiring.{u3} C _inst_12) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u3, u1, u2} C A L _inst_5 (CommRing.toCommSemiring.{u3} C _inst_12) (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))] [_inst_17 : IsScalarTower.{u1, u3, u2} A C L (SMulZeroClass.toHasSmul.{u1, u3} A C (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} C (AddMonoid.toAddZeroClass.{u3} C (AddCommMonoid.toAddMonoid.{u3} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)))))))) (Module.toMulActionWithZero.{u1, u3} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} C (Semiring.toNonAssocSemiring.{u3} C (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12))))) (Algebra.toModule.{u1, u3} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} C (CommRing.toRing.{u3} C _inst_12)) _inst_16))))) (SMulZeroClass.toHasSmul.{u3, u2} C L (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u3, u2} C L (MulZeroClass.toHasZero.{u3} C (MulZeroOneClass.toMulZeroClass.{u3} C (MonoidWithZero.toMulZeroOneClass.{u3} C (Semiring.toMonoidWithZero.{u3} C (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12)))))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u3, u2} C L (Semiring.toMonoidWithZero.{u3} C (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (Module.toMulActionWithZero.{u3, u2} C L (CommSemiring.toSemiring.{u3} C (CommRing.toCommSemiring.{u3} C _inst_12)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))))) (Algebra.toModule.{u3, u2} C L (CommRing.toCommSemiring.{u3} C _inst_12) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_14))))) (SMulZeroClass.toHasSmul.{u1, u2} A L (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u2} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))))) (Algebra.toModule.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_10)))))], (Algebra.IsAlgebraic.{u1, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_10) -> (forall (x : A), (Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (fun (_x : RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) => A -> L) (RingHom.hasCoeToFun.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (algebraMap.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_10) x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))))) -> (Eq.{succ u1} A x (OfNat.ofNat.{u1} A 0 (OfNat.mk.{u1} A 0 (Zero.zero.{u1} A (MulZeroClass.toHasZero.{u1} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_5))))))))))) -> (IsFractionRing.{u3, u2} C _inst_12 L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_14)
+but is expected to have type
+ forall (A : Type.{u3}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_10 : Algebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] (C : Type.{u1}) [_inst_12 : CommRing.{u1} C] [_inst_13 : IsDomain.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_14 : Algebra.{u1, u2} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u1, u3, u2} C A L _inst_5 (CommRing.toCommSemiring.{u1} C _inst_12) (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u3, u1} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_17 : IsScalarTower.{u3, u1, u2} A C L (Algebra.toSMul.{u3, u1} A C (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12)) _inst_16) (Algebra.toSMul.{u1, u2} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_14) (Algebra.toSMul.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_10)], (Algebra.IsAlgebraic.{u3, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_10) -> (forall (x : A), (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u3, u2} (RingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))))) A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))) (RingHom.instRingHomClassRingHom.{u3, u2} A L (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))))))) (algebraMap.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_10) x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommMonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommGroupWithZero.toCommMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Semifield.toCommGroupWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Field.toSemifield.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) _inst_8))))))) -> (Eq.{succ u3} A x (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (CommMonoidWithZero.toZero.{u3} A (CancelCommMonoidWithZero.toCommMonoidWithZero.{u3} A (IsDomain.toCancelCommMonoidWithZero.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5) _inst_6))))))) -> (IsFractionRing.{u1, u2} C _inst_12 L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_14)
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
@@ -340,6 +438,12 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
variable (K L)
+/- warning: is_integral_closure.is_fraction_ring_of_finite_extension -> IsIntegralClosure.isFractionRing_of_finite_extension is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) (K : Type.{u2}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u2} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_10 : Algebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_11 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_9] (C : Type.{u4}) [_inst_12 : CommRing.{u4} C] [_inst_13 : IsDomain.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))] [_inst_14 : Algebra.{u4, u3} C L (CommRing.toCommSemiring.{u4} C _inst_12) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u4, u1, u3} C A L _inst_5 (CommRing.toCommSemiring.{u4} C _inst_12) (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))] [_inst_17 : IsScalarTower.{u1, u4, u3} A C L (SMulZeroClass.toHasSmul.{u1, u4} A C (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} A C (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} A C (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u4} C (AddMonoid.toAddZeroClass.{u4} C (AddCommMonoid.toAddMonoid.{u4} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)))))))) (Module.toMulActionWithZero.{u1, u4} A C (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} C (Semiring.toNonAssocSemiring.{u4} C (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12))))) (Algebra.toModule.{u1, u4} A C (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_12)) _inst_16))))) (SMulZeroClass.toHasSmul.{u4, u3} C L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u4, u3} C L (MulZeroClass.toHasZero.{u4} C (MulZeroOneClass.toMulZeroClass.{u4} C (MonoidWithZero.toMulZeroOneClass.{u4} C (Semiring.toMonoidWithZero.{u4} C (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u4, u3} C L (Semiring.toMonoidWithZero.{u4} C (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u4, u3} C L (CommSemiring.toSemiring.{u4} C (CommRing.toCommSemiring.{u4} C _inst_12)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u4, u3} C L (CommRing.toCommSemiring.{u4} C _inst_12) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_14))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_10)))))] [_inst_18 : Algebra.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_19 : IsScalarTower.{u1, u2, u3} A K L (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_9))))) (SMulZeroClass.toHasSmul.{u2, u3} K L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K L (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K L (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u2, u3} K L (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_18))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_10)))))] [_inst_20 : FiniteDimensional.{u2, u3} K L (Field.toDivisionRing.{u2} K _inst_7) (NonUnitalNonAssocRing.toAddCommGroup.{u3} L (NonAssocRing.toNonUnitalNonAssocRing.{u3} L (Ring.toNonAssocRing.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_18)], IsFractionRing.{u4, u3} C _inst_12 L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_14
+but is expected to have type
+ forall (A : Type.{u2}) (K : Type.{u4}) [_inst_5 : CommRing.{u2} A] [_inst_6 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u4} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u2, u4} A K (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u4} K (Semifield.toDivisionSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)))] [_inst_10 : Algebra.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_11 : IsFractionRing.{u2, u4} A _inst_5 K (EuclideanDomain.toCommRing.{u4} K (Field.toEuclideanDomain.{u4} K _inst_7)) _inst_9] (C : Type.{u1}) [_inst_12 : CommRing.{u1} C] [_inst_13 : IsDomain.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_14 : Algebra.{u1, u3} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_15 : IsIntegralClosure.{u1, u2, u3} C A L _inst_5 (CommRing.toCommSemiring.{u1} C _inst_12) (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_10 _inst_14] [_inst_16 : Algebra.{u2, u1} A C (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12))] [_inst_17 : IsScalarTower.{u2, u1, u3} A C L (Algebra.toSMul.{u2, u1} A C (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_12)) _inst_16) (Algebra.toSMul.{u1, u3} C L (CommRing.toCommSemiring.{u1} C _inst_12) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_14) (Algebra.toSMul.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_10)] [_inst_18 : Algebra.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)))] [_inst_19 : IsScalarTower.{u2, u4, u3} A K L (Algebra.toSMul.{u2, u4} A K (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u4} K (Semifield.toDivisionSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7))) _inst_9) (Algebra.toSMul.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_18) (Algebra.toSMul.{u2, u3} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_10)] [_inst_20 : FiniteDimensional.{u4, u3} K L (Field.toDivisionRing.{u4} K _inst_7) (Ring.toAddCommGroup.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) (Algebra.toModule.{u4, u3} K L (Semifield.toCommSemiring.{u4} K (Field.toSemifield.{u4} K _inst_7)) (DivisionSemiring.toSemiring.{u3} L (Semifield.toDivisionSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) _inst_18)], IsFractionRing.{u1, u3} C _inst_12 L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_14
+Case conversion may be inaccurate. Consider using '#align is_integral_closure.is_fraction_ring_of_finite_extension IsIntegralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
@@ -358,6 +462,12 @@ variable {L : Type _} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
open Algebra
+/- warning: integral_closure.is_fraction_ring_of_algebraic -> integralClosure.isFractionRing_of_algebraic 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))] {L : Type.{u2}} [_inst_8 : Field.{u2} L] [_inst_11 : Algebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)))], (Algebra.IsAlgebraic.{u1, u2} A L _inst_5 (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8)) _inst_11) -> (forall (x : A), (Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (fun (_x : RingHom.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) => A -> L) (RingHom.hasCoeToFun.{u1, u2} A L (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))) (algebraMap.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) _inst_11) x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))))))))))) -> (Eq.{succ u1} A x (OfNat.ofNat.{u1} A 0 (OfNat.mk.{u1} A 0 (Zero.zero.{u1} A (MulZeroClass.toHasZero.{u1} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} A (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} A (NonAssocRing.toNonUnitalNonAssocRing.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_5))))))))))) -> (IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) L (Subalgebra.setLike.{u1, u2} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11)) (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) (Subalgebra.toCommRing.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11 (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) (Subalgebra.toAlgebra.{u2, u1, u2} L A L (CommRing.toCommSemiring.{u1} A _inst_5) (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)) (Ring.toSemiring.{u2} L (CommRing.toRing.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11 (Algebra.id.{u2} L (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) (integralClosure.{u1, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)))
+but is expected to have type
+ forall {A : Type.{u2}} [_inst_5 : CommRing.{u2} A] [_inst_6 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))] {L : Type.{u1}} [_inst_8 : Field.{u1} L] [_inst_11 : Algebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))], (Algebra.IsAlgebraic.{u2, u1} A L _inst_5 (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_8)) _inst_11) -> (forall (x : A), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))))) A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))) (RingHom.instRingHomClassRingHom.{u2, u1} A L (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)))))))) (algebraMap.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))) _inst_11) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (CommGroupWithZero.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Semifield.toCommGroupWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) (Field.toSemifield.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => L) x) _inst_8))))))) -> (Eq.{succ u2} A x (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} A (IsDomain.toCancelCommMonoidWithZero.{u2} A (CommRing.toCommSemiring.{u2} A _inst_5) _inst_6))))))) -> (IsFractionRing.{u1, u1} (Subtype.{succ u1} L (fun (x : L) => Membership.mem.{u1, u1} L (Subalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11) L (Subalgebra.instSetLikeSubalgebra.{u2, u1} A L (CommRing.toCommSemiring.{u2} A _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11)) x (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11))) (Subalgebra.toCommRing.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11 (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) (Subalgebra.toAlgebra.{u1, u2, u1} L A L (CommRing.toCommSemiring.{u2} A _inst_5) (Semifield.toCommSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)))) _inst_11 (Algebra.id.{u1} L (Semifield.toCommSemiring.{u1} L (Field.toSemifield.{u1} L _inst_8))) (integralClosure.{u2, u1} A L _inst_5 (EuclideanDomain.toCommRing.{u1} L (Field.toEuclideanDomain.{u1} L _inst_8)) _inst_11)))
+Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_algebraic integralClosure.isFractionRing_of_algebraicₓ'. -/
/-- If the field `L` is an algebraic extension of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
@@ -367,6 +477,12 @@ theorem isFractionRing_of_algebraic [Algebra A L] (alg : IsAlgebraic A L)
variable (K L)
+/- warning: integral_closure.is_fraction_ring_of_finite_extension -> integralClosure.isFractionRing_of_finite_extension is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_5 : CommRing.{u1} A] [_inst_6 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_5))] (L : Type.{u3}) [_inst_7 : Field.{u2} K] [_inst_8 : Field.{u3} L] [_inst_9 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))] [_inst_10 : IsFractionRing.{u1, u2} A _inst_5 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_7)) _inst_9] [_inst_11 : Algebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_12 : Algebra.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))] [_inst_13 : IsScalarTower.{u1, u2, u3} A K L (SMulZeroClass.toHasSmul.{u1, u2} A K (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} A K (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u2} K (AddMonoid.toAddZeroClass.{u2} K (AddCommMonoid.toAddMonoid.{u2} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_7))) _inst_9))))) (SMulZeroClass.toHasSmul.{u2, u3} K L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K L (MulZeroClass.toHasZero.{u2} K (MulZeroOneClass.toMulZeroClass.{u2} K (MonoidWithZero.toMulZeroOneClass.{u2} K (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K L (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u2, u3} K L (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u3} A L (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} A L (MulZeroClass.toHasZero.{u1} A (MulZeroOneClass.toMulZeroClass.{u1} A (MonoidWithZero.toMulZeroOneClass.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)))))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} A L (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5))) (AddZeroClass.toHasZero.{u3} L (AddMonoid.toAddZeroClass.{u3} L (AddCommMonoid.toAddMonoid.{u3} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))))))) (Module.toMulActionWithZero.{u1, u3} A L (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} L (Semiring.toNonAssocSemiring.{u3} L (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8)))))) (Algebra.toModule.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_11)))))] [_inst_14 : FiniteDimensional.{u2, u3} K L (Field.toDivisionRing.{u2} K _inst_7) (NonUnitalNonAssocRing.toAddCommGroup.{u3} L (NonAssocRing.toNonUnitalNonAssocRing.{u3} L (Ring.toNonAssocRing.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))))) (Algebra.toModule.{u2, u3} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_7)) (Ring.toSemiring.{u3} L (DivisionRing.toRing.{u3} L (Field.toDivisionRing.{u3} L _inst_8))) _inst_12)], IsFractionRing.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Subalgebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Subalgebra.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11) L (Subalgebra.setLike.{u1, u3} A L (CommRing.toCommSemiring.{u1} A _inst_5) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11)) (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11)) (Subalgebra.toCommRing.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11 (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) (Subalgebra.toAlgebra.{u3, u1, u3} L A L (CommRing.toCommSemiring.{u1} A _inst_5) (Semifield.toCommSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8)) (Ring.toSemiring.{u3} L (CommRing.toRing.{u3} L (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)))) _inst_11 (Algebra.id.{u3} L (Semifield.toCommSemiring.{u3} L (Field.toSemifield.{u3} L _inst_8))) (integralClosure.{u1, u3} A L _inst_5 (EuclideanDomain.toCommRing.{u3} L (Field.toEuclideanDomain.{u3} L _inst_8)) _inst_11))
+but is expected to have type
+ forall {A : Type.{u3}} (K : Type.{u1}) [_inst_5 : CommRing.{u3} A] [_inst_6 : IsDomain.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_5))] (L : Type.{u2}) [_inst_7 : Field.{u1} K] [_inst_8 : Field.{u2} L] [_inst_9 : Algebra.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)))] [_inst_10 : IsFractionRing.{u3, u1} A _inst_5 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_7)) _inst_9] [_inst_11 : Algebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_12 : Algebra.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)))] [_inst_13 : IsScalarTower.{u3, u1, u2} A K L (Algebra.toSMul.{u3, u1} A K (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7))) _inst_9) (Algebra.toSMul.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_12) (Algebra.toSMul.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_11)] [_inst_14 : FiniteDimensional.{u1, u2} K L (Field.toDivisionRing.{u1} K _inst_7) (Ring.toAddCommGroup.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_8))) (Algebra.toModule.{u1, u2} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_7)) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) _inst_12)], IsFractionRing.{u2, u2} (Subtype.{succ u2} L (fun (x : L) => Membership.mem.{u2, u2} L (Subalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) (SetLike.instMembership.{u2, u2} (Subalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11) L (Subalgebra.instSetLikeSubalgebra.{u3, u2} A L (CommRing.toCommSemiring.{u3} A _inst_5) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11)) x (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11))) (Subalgebra.toCommRing.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11 (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11)) L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) (Subalgebra.toAlgebra.{u2, u3, u2} L A L (CommRing.toCommSemiring.{u3} A _inst_5) (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8)) (CommSemiring.toSemiring.{u2} L (CommRing.toCommSemiring.{u2} L (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)))) _inst_11 (Algebra.id.{u2} L (Semifield.toCommSemiring.{u2} L (Field.toSemifield.{u2} L _inst_8))) (integralClosure.{u3, u2} A L _inst_5 (EuclideanDomain.toCommRing.{u2} L (Field.toEuclideanDomain.{u2} L _inst_8)) _inst_11))
+Case conversion may be inaccurate. Consider using '#align integral_closure.is_fraction_ring_of_finite_extension integralClosure.isFractionRing_of_finite_extensionₓ'. -/
/-- If the field `L` is a finite extension of the fraction field of the integral domain `A`,
the integral closure of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra A L] [Algebra K L] [IsScalarTower A K L]
@@ -380,6 +496,12 @@ namespace IsFractionRing
variable (R S K)
+/- warning: is_fraction_ring.is_algebraic_iff' -> IsFractionRing.isAlgebraic_iff' is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (S : Type.{u2}) [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] (K : Type.{u3}) [_inst_7 : Field.{u3} K] [_inst_8 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_9 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_10 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))] [_inst_11 : Algebra.{u2, u3} S K (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))] [_inst_12 : NoZeroSMulDivisors.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toHasZero.{u3} K (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} K (NonAssocRing.toNonUnitalNonAssocRing.{u3} K (Ring.toNonAssocRing.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))) (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_10)))))] [_inst_13 : IsFractionRing.{u2, u3} S _inst_2 K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_7)) _inst_11] [_inst_14 : IsScalarTower.{u1, u2, u3} R S K (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} S K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S K (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S K (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u2, u3} S K (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u2, u3} S K (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_11))))) (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7))) _inst_10)))))], Iff (Algebra.IsAlgebraic.{u1, u2} R S _inst_1 (CommRing.toRing.{u2} S _inst_2) _inst_3) (Algebra.IsAlgebraic.{u1, u3} R K _inst_1 (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)) _inst_10)
+but is expected to have type
+ forall (R : Type.{u2}) [_inst_1 : CommRing.{u2} R] (S : Type.{u1}) [_inst_2 : CommRing.{u1} S] [_inst_3 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] (K : Type.{u3}) [_inst_7 : Field.{u3} K] [_inst_8 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_9 : IsDomain.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2))] [_inst_10 : Algebra.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7)))] [_inst_11 : Algebra.{u1, u3} S K (CommRing.toCommSemiring.{u1} S _inst_2) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7)))] [_inst_12 : NoZeroSMulDivisors.{u2, u3} R K (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1) _inst_8))) (CommMonoidWithZero.toZero.{u3} K (CommGroupWithZero.toCommMonoidWithZero.{u3} K (Semifield.toCommGroupWithZero.{u3} K (Field.toSemifield.{u3} K _inst_7)))) (Algebra.toSMul.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_10)] [_inst_13 : IsFractionRing.{u1, u3} S _inst_2 K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_7)) _inst_11] [_inst_14 : IsScalarTower.{u2, u1, u3} R S K (Algebra.toSMul.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)) _inst_3) (Algebra.toSMul.{u1, u3} S K (CommRing.toCommSemiring.{u1} S _inst_2) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_11) (Algebra.toSMul.{u2, u3} R K (CommRing.toCommSemiring.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_7))) _inst_10)], Iff (Algebra.IsAlgebraic.{u2, u1} R S _inst_1 (CommRing.toRing.{u1} S _inst_2) _inst_3) (Algebra.IsAlgebraic.{u2, u3} R K _inst_1 (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_7)) _inst_10)
+Case conversion may be inaccurate. Consider using '#align is_fraction_ring.is_algebraic_iff' IsFractionRing.isAlgebraic_iff'ₓ'. -/
/-- `S` is algebraic over `R` iff a fraction ring of `S` is algebraic over `R` -/
theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Algebra S K]
[NoZeroSMulDivisors R K] [IsFractionRing S K] [IsScalarTower R S K] :
@@ -429,6 +551,12 @@ open nonZeroDivisors
variable (R) {S K}
+/- warning: is_fraction_ring.ideal_span_singleton_map_subset -> IsFractionRing.ideal_span_singleton_map_subset is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] {K : Type.{u3}} {L : Type.{u4}} [_inst_7 : IsDomain.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))] [_inst_8 : IsDomain.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))] [_inst_9 : Field.{u3} K] [_inst_10 : Field.{u4} L] [_inst_11 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9)))] [_inst_12 : Algebra.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_13 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_14 : IsIntegralClosure.{u2, u1, u4} S R L _inst_1 (CommRing.toCommSemiring.{u2} S _inst_2) (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_12 _inst_13] [_inst_15 : IsFractionRing.{u2, u4} S _inst_2 L (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_13] [_inst_16 : Algebra.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))] [_inst_17 : IsScalarTower.{u1, u2, u4} R S L (SMulZeroClass.toHasSmul.{u1, u2} R S (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R S (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} S (AddMonoid.toAddZeroClass.{u2} S (AddCommMonoid.toAddMonoid.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u4} S L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} S L (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} S L (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u2, u4} S L (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13))))) (SMulZeroClass.toHasSmul.{u1, u4} R L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R L (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12)))))] [_inst_18 : IsScalarTower.{u1, u3, u4} R K L (SMulZeroClass.toHasSmul.{u1, u3} R K (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R K (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} K (AddMonoid.toAddZeroClass.{u3} K (AddCommMonoid.toAddMonoid.{u3} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} K (Semiring.toNonAssocSemiring.{u3} K (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) _inst_11))))) (SMulZeroClass.toHasSmul.{u3, u4} K L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u3, u4} K L (MulZeroClass.toHasZero.{u3} K (MulZeroOneClass.toMulZeroClass.{u3} K (MonoidWithZero.toMulZeroOneClass.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9))))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u3, u4} K L (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u3, u4} K L (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16))))) (SMulZeroClass.toHasSmul.{u1, u4} R L (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R L (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u4} L (AddMonoid.toAddZeroClass.{u4} L (AddCommMonoid.toAddMonoid.{u4} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12)))))] {a : S} {b : Set.{u2} S}, (Algebra.IsAlgebraic.{u1, u4} R L _inst_1 (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)) _inst_12) -> (Function.Injective.{succ u1, succ u4} R L (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (RingHom.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => R -> L) (RingHom.hasCoeToFun.{u1, u4} R L (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_12))) -> (HasSubset.Subset.{u2} (Set.{u2} S) (Set.hasSubset.{u2} S) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (Ideal.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))) S (Submodule.setLike.{u2, u2} S S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Semiring.toModule.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2))))))) (Ideal.span.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.hasSingleton.{u2} S) a))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (HasLiftT.mk.{succ u2, succ u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (CoeTCₓ.coe.{succ u2, succ u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) (Set.{u2} S) (SetLike.Set.hasCoeT.{u2, u2} (Submodule.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3)) S (Submodule.setLike.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3))))) (Submodule.span.{u1, u2} R S (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_2)) _inst_3) b))) -> (HasSubset.Subset.{u4} (Set.{u4} L) (Set.hasSubset.{u4} L) ((fun (a : Type.{u4}) (b : Type.{u4}) [self : HasLiftT.{succ u4, succ u4} a b] => self.0) (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (HasLiftT.mk.{succ u4, succ u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (CoeTCₓ.coe.{succ u4, succ u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) (Set.{u4} L) (SetLike.Set.hasCoeT.{u4, u4} (Ideal.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))) L (Submodule.setLike.{u4, u4} L L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Semiring.toModule.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))))) (Ideal.span.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) (Singleton.singleton.{u4, u4} L (Set.{u4} L) (Set.hasSingleton.{u4} L) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13) a)))) ((fun (a : Type.{u4}) (b : Type.{u4}) [self : HasLiftT.{succ u4, succ u4} a b] => self.0) (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (HasLiftT.mk.{succ u4, succ u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (CoeTCₓ.coe.{succ u4, succ u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) (Set.{u4} L) (SetLike.Set.hasCoeT.{u4, u4} (Submodule.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16)) L (Submodule.setLike.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16))))) (Submodule.span.{u3, u4} K L (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_9))) (AddCommGroup.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toAddCommGroup.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_9)) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_16) (Set.image.{u2, u4} S L (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (Ring.toSemiring.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10))) _inst_13)) b))))
+but is expected to have type
+ forall (R : Type.{u3}) [_inst_1 : CommRing.{u3} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] [_inst_3 : Algebra.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] {K : Type.{u1}} {L : Type.{u4}} [_inst_7 : IsDomain.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))] [_inst_8 : IsDomain.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))] [_inst_9 : Field.{u1} K] [_inst_10 : Field.{u4} L] [_inst_11 : Algebra.{u3, u1} R K (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)))] [_inst_12 : Algebra.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_13 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_14 : IsIntegralClosure.{u2, u3, u4} S R L _inst_1 (CommRing.toCommSemiring.{u2} S _inst_2) (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_12 _inst_13] [_inst_15 : IsFractionRing.{u2, u4} S _inst_2 L (EuclideanDomain.toCommRing.{u4} L (Field.toEuclideanDomain.{u4} L _inst_10)) _inst_13] [_inst_16 : Algebra.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))] [_inst_17 : IsScalarTower.{u3, u2, u4} R S L (Algebra.toSMul.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) (Algebra.toSMul.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13) (Algebra.toSMul.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12)] [_inst_18 : IsScalarTower.{u3, u1, u4} R K L (Algebra.toSMul.{u3, u1} R K (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) _inst_11) (Algebra.toSMul.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16) (Algebra.toSMul.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12)] {a : S} {b : Set.{u2} S}, (Algebra.IsAlgebraic.{u3, u4} R L _inst_1 (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)) _inst_12) -> (Function.Injective.{succ u3, succ u4} R L (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => L) _x) (MulHomClass.toFunLike.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u3, u4} (RingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u3, u4} R L (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u3, u4} R L (CommRing.toCommSemiring.{u3} R _inst_1) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_12))) -> (HasSubset.Subset.{u2} (Set.{u2} S) (Set.instHasSubsetSet.{u2} S) (SetLike.coe.{u2, u2} (Ideal.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) S (Submodule.setLike.{u2, u2} S S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (Semiring.toModule.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (Ideal.span.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) (Singleton.singleton.{u2, u2} S (Set.{u2} S) (Set.instSingletonSet.{u2} S) a))) (SetLike.coe.{u2, u2} (Submodule.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) S (Submodule.setLike.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3)) (Submodule.span.{u3, u2} R S (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2))))) (Algebra.toModule.{u3, u2} R S (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)) _inst_3) b))) -> (HasSubset.Subset.{u4} (Set.{u4} L) (Set.instHasSubsetSet.{u4} L) (SetLike.coe.{u4, u4} (Ideal.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) L (Submodule.setLike.{u4, u4} L L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (Semiring.toModule.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (Ideal.span.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) (Singleton.singleton.{u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) a) (Set.{u4} L) (Set.instSingletonSet.{u4} L) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13) a)))) (SetLike.coe.{u4, u4} (Submodule.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16)) L (Submodule.setLike.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16)) (Submodule.span.{u1, u4} K L (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} L (NonAssocRing.toNonUnitalNonAssocRing.{u4} L (Ring.toNonAssocRing.{u4} L (DivisionRing.toRing.{u4} L (Field.toDivisionRing.{u4} L _inst_10)))))) (Algebra.toModule.{u1, u4} K L (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_9)) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_16) (Set.image.{u2, u4} S L (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u4, u2, u4} (RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))))) S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))) (RingHom.instRingHomClassRingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_2))) (Semiring.toNonAssocSemiring.{u4} L (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10)))))))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_2) (DivisionSemiring.toSemiring.{u4} L (Semifield.toDivisionSemiring.{u4} L (Field.toSemifield.{u4} L _inst_10))) _inst_13)) b))))
+Case conversion may be inaccurate. Consider using '#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subsetₓ'. -/
/-- If the `S`-multiples of `a` are contained in some `R`-span, then `Frac(S)`-multiples of `a`
are contained in the equivalent `Frac(R)`-span. -/
theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [Field K] [Field L]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -95,7 +95,7 @@ theorem integerNormalization_spec (p : S[X]) :
Classical.choose_spec
(Classical.choose_spec (exist_integer_multiples_of_finset M (p.support.image p.coeff))
(p.coeff i) (finset.mem_image.mpr ⟨i, hi, rfl⟩))
- · convert (smul_zero _).symm
+ · convert(smul_zero _).symm
· apply RingHom.map_zero
· exact not_mem_support_iff.mp hi
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -115,7 +115,7 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
let ⟨b, hb⟩ := integerNormalization_map_to_map M p
trans (eval₂_map (algebraMap R S) g x).symm
- (by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, mul_zero])
+ (by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, MulZeroClass.mul_zero])
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
@@ -210,7 +210,7 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [Comm
refine' ⟨p.map (algebraMap R Rₘ) * C b, ⟨_, _⟩⟩
· refine' monic_mul_C_of_leading_coeff_mul_eq_one _
rwa [leading_coeff_map_of_leading_coeff_ne_zero (algebraMap R Rₘ)]
- refine' fun hfp => zero_ne_one (trans (zero_mul b).symm (hfp ▸ hb) : (0 : Rₘ) = 1)
+ refine' fun hfp => zero_ne_one (trans (MulZeroClass.zero_mul b).symm (hfp ▸ hb) : (0 : Rₘ) = 1)
· refine' eval₂_mul_eq_zero_of_left _ _ _ _
erw [eval₂_map, IsLocalization.map_comp, ← hom_eval₂ _ f (algebraMap S Sₘ) x]
exact trans (congr_arg (algebraMap S Sₘ) hf) (RingHom.map_zero _)
@@ -282,7 +282,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
· rw [← Algebra.smul_def]
exact ⟨_, IsLocalization.map_integerMultiple M p.support p.coeff ⟨n, h₁⟩⟩
· rw [Polynomial.not_mem_support_iff] at h₁
- rw [h₁, zero_mul]
+ rw [h₁, MulZeroClass.zero_mul]
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -291,7 +291,7 @@ theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [
by
cases' subsingleton_or_nontrivial Rₘ with _ nontriv <;> skip
· haveI := (algebraMap Rₘ S).codomain_trivial
- exact ⟨1, Polynomial.X, Polynomial.monic_x, Subsingleton.elim _ _⟩
+ exact ⟨1, Polynomial.X, Polynomial.monic_X, Subsingleton.elim _ _⟩
obtain ⟨p, hp₁, hp₂⟩ := hx
obtain ⟨p', hp'₁, -, hp'₂⟩ :=
lifts_and_nat_degree_eq_and_monic (IsLocalization.scaleRoots_commonDenom_mem_lifts M p _) _
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -291,7 +291,7 @@ theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [
by
cases' subsingleton_or_nontrivial Rₘ with _ nontriv <;> skip
· haveI := (algebraMap Rₘ S).codomain_trivial
- exact ⟨1, Polynomial.x, Polynomial.monic_x, Subsingleton.elim _ _⟩
+ exact ⟨1, Polynomial.X, Polynomial.monic_x, Subsingleton.elim _ _⟩
obtain ⟨p, hp₁, hp₂⟩ := hx
obtain ⟨p', hp'₁, -, hp'₂⟩ :=
lifts_and_nat_degree_eq_and_monic (IsLocalization.scaleRoots_commonDenom_mem_lifts M p _) _
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Data
(#11751)
Polynomial
and MvPolynomial
are algebraic objects, hence should be under Algebra
(or at least not under Data
)
@@ -3,14 +3,14 @@ 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 Mathlib.Data.Polynomial.Lifts
+import Mathlib.Algebra.GroupWithZero.NonZeroDivisors
+import Mathlib.Algebra.Polynomial.Lifts
import Mathlib.GroupTheory.MonoidLocalization
import Mathlib.RingTheory.Algebraic
import Mathlib.RingTheory.Ideal.LocalRing
import Mathlib.RingTheory.IntegralClosure
import Mathlib.RingTheory.Localization.FractionRing
import Mathlib.RingTheory.Localization.Integer
-import Mathlib.Algebra.GroupWithZero.NonZeroDivisors
#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"831c494092374cfe9f50591ed0ac81a25efc5b86"
@@ -54,14 +54,14 @@ noncomputable def coeffIntegerNormalization (p : S[X]) (i : ℕ) : R :=
theorem coeffIntegerNormalization_of_not_mem_support (p : S[X]) (i : ℕ) (h : coeff p i = 0) :
coeffIntegerNormalization M p i = 0 := by
- simp only [coeffIntegerNormalization, h, mem_support_iff, eq_self_iff_true, not_true, Ne.def,
+ simp only [coeffIntegerNormalization, h, mem_support_iff, eq_self_iff_true, not_true, Ne,
dif_neg, not_false_iff]
#align is_localization.coeff_integer_normalization_of_not_mem_support IsLocalization.coeffIntegerNormalization_of_not_mem_support
theorem coeffIntegerNormalization_mem_support (p : S[X]) (i : ℕ)
(h : coeffIntegerNormalization M p i ≠ 0) : i ∈ p.support := by
contrapose h
- rw [Ne.def, Classical.not_not, coeffIntegerNormalization, dif_neg h]
+ rw [Ne, Classical.not_not, coeffIntegerNormalization, dif_neg h]
#align is_localization.coeff_integer_normalization_mem_support IsLocalization.coeffIntegerNormalization_mem_support
/-- `integerNormalization g` normalizes `g` to have integer coefficients
@@ -391,7 +391,7 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
· rw [← isAlgebraic_iff_isIntegral]
use (f.map (algebraMap R (FractionRing R))).reverse
constructor
- · rwa [Ne.def, Polynomial.reverse_eq_zero, ← Polynomial.degree_eq_bot,
+ · rwa [Ne, Polynomial.reverse_eq_zero, ← Polynomial.degree_eq_bot,
Polynomial.degree_map_eq_of_injective
(NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)),
Polynomial.degree_eq_bot]
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)
@@ -28,7 +28,6 @@ commutative ring, field of fractions
variable {R : Type*} [CommRing R] (M : Submonoid R) {S : Type*} [CommRing S]
-
variable [Algebra R S] {P : Type*} [CommRing P]
open BigOperators Polynomial
@@ -125,7 +124,6 @@ namespace IsFractionRing
open IsLocalization
variable {A K C : Type*} [CommRing A] [IsDomain A] [Field K] [Algebra A K] [IsFractionRing A K]
-
variable [CommRing C]
theorem integerNormalization_eq_zero_iff {p : K[X]} :
@@ -177,11 +175,8 @@ open IsLocalization
section IsIntegral
variable {Rₘ Sₘ : Type*} [CommRing Rₘ] [CommRing Sₘ]
-
variable [Algebra R Rₘ] [IsLocalization M Rₘ]
-
variable [Algebra S Sₘ] [IsLocalization (Algebra.algebraMapSubmonoid S M) Sₘ]
-
variable {M}
open Polynomial
@@ -307,9 +302,7 @@ namespace IsIntegralClosure
variable (A)
variable {L : Type*} [Field K] [Field L] [Algebra A K] [Algebra A L] [IsFractionRing A K]
-
variable (C : Type*) [CommRing C] [IsDomain C] [Algebra C L] [IsIntegralClosure C A L]
-
variable [Algebra A C] [IsScalarTower A C L]
open Algebra
@@ -282,7 +282,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [IsScalarTower R Rₘ S]
(x : S) (hx : IsIntegral Rₘ x) : ∃ m : M, IsIntegral R (m • x) := by
- cases' subsingleton_or_nontrivial Rₘ with _ nontriv <;> skip
+ cases' subsingleton_or_nontrivial Rₘ with _ nontriv
· haveI := (_root_.algebraMap Rₘ S).codomain_trivial
exact ⟨1, Polynomial.X, Polynomial.monic_X, Subsingleton.elim _ _⟩
obtain ⟨p, hp₁, hp₂⟩ := hx
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -41,7 +41,7 @@ open Polynomial
variable [IsLocalization M S]
-open Classical
+open scoped Classical
/-- `coeffIntegerNormalization p` gives the coefficients of the polynomial
`integerNormalization p` -/
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>
@@ -447,8 +447,8 @@ theorem ideal_span_singleton_map_subset {L : Type*} [IsDomain R] [IsDomain S] [F
have mk_yz_eq : IsLocalization.mk' L y' z' = IsLocalization.mk' L y ⟨_, hz0'⟩ := by
rw [Algebra.smul_def, mul_comm _ y, mul_comm _ y'] at yz_eq
exact IsLocalization.mk'_eq_of_eq (by rw [mul_comm _ y, mul_comm _ y', yz_eq])
- suffices hy : algebraMap S L (a * y) ∈ Submodule.span K ((algebraMap S L) '' b)
- · rw [mk_yz_eq, IsFractionRing.mk'_eq_div, ← IsScalarTower.algebraMap_apply,
+ suffices hy : algebraMap S L (a * y) ∈ Submodule.span K ((algebraMap S L) '' b) by
+ rw [mk_yz_eq, IsFractionRing.mk'_eq_div, ← IsScalarTower.algebraMap_apply,
IsScalarTower.algebraMap_apply R K L, div_eq_mul_inv, ← mul_assoc, mul_comm, ← map_inv₀, ←
Algebra.smul_def, ← _root_.map_mul]
exact (Submodule.span K _).smul_mem _ hy
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -454,7 +454,9 @@ theorem ideal_span_singleton_map_subset {L : Type*} [IsDomain R] [IsDomain S] [F
exact (Submodule.span K _).smul_mem _ hy
refine' Submodule.span_subset_span R K _ _
rw [Submodule.span_algebraMap_image_of_tower]
- exact Submodule.mem_map_of_mem (h (Ideal.mem_span_singleton.mpr ⟨y, rfl⟩))
+ -- Note: #8386 had to specify the value of `f` here:
+ exact Submodule.mem_map_of_mem (f := LinearMap.restrictScalars _ _)
+ (h (Ideal.mem_span_singleton.mpr ⟨y, rfl⟩))
#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subset
end IsFractionRing
@@ -458,3 +458,38 @@ theorem ideal_span_singleton_map_subset {L : Type*} [IsDomain R] [IsDomain S] [F
#align is_fraction_ring.ideal_span_singleton_map_subset IsFractionRing.ideal_span_singleton_map_subset
end IsFractionRing
+
+lemma isAlgebraic_of_isLocalization {R} [CommRing R] (M : Submonoid R) (S) [CommRing S]
+ [Nontrivial R] [Algebra R S] [IsLocalization M S] : Algebra.IsAlgebraic R S := by
+ intro x
+ obtain ⟨x, s, rfl⟩ := IsLocalization.mk'_surjective M x
+ by_cases hs : (s : R) = 0
+ · have := IsLocalization.mk'_spec S x s
+ rw [hs, map_zero, mul_zero] at this
+ exact ⟨X, X_ne_zero, by simp [IsLocalization.mk'_eq_mul_mk'_one x, ← this]⟩
+ refine ⟨s • X - C x, ?_, ?_⟩
+ · intro e; apply hs
+ simpa only [coeff_sub, coeff_smul, coeff_X_one, coeff_C_succ, sub_zero, coeff_zero,
+ ← Algebra.algebraMap_eq_smul_one, Submonoid.smul_def,
+ Algebra.id.map_eq_id, RingHom.id_apply] using congr_arg (Polynomial.coeff · 1) e
+ · simp only [map_sub, Algebra.smul_def, Submonoid.smul_def,
+ map_mul, AlgHom.commutes, aeval_X, IsLocalization.mk'_spec', aeval_C, sub_self]
+
+open nonZeroDivisors in
+lemma isAlgebraic_of_isFractionRing {R S} (K L) [CommRing R] [CommRing S] [Field K] [CommRing L]
+ [Algebra R S] [Algebra R K] [Algebra R L] [Algebra S L] [Algebra K L] [IsScalarTower R S L]
+ [IsScalarTower R K L] [IsFractionRing S L]
+ (h : Algebra.IsIntegral R S) : Algebra.IsAlgebraic K L := by
+ intro x
+ obtain ⟨x, s, rfl⟩ := IsLocalization.mk'_surjective S⁰ x
+ apply IsIntegral.isAlgebraic
+ rw [IsLocalization.mk'_eq_mul_mk'_one]
+ apply RingHom.IsIntegralElem.mul
+ · apply IsIntegral.tower_top (R := R)
+ apply IsIntegral.map (IsScalarTower.toAlgHom R S L)
+ exact h x
+ · show IsIntegral _ _
+ rw [← isAlgebraic_iff_isIntegral, ← IsAlgebraic.invOf_iff, isAlgebraic_iff_isIntegral]
+ apply IsIntegral.tower_top (R := R)
+ apply IsIntegral.map (IsScalarTower.toAlgHom R S L)
+ exact h s
@@ -10,7 +10,7 @@ import Mathlib.RingTheory.Ideal.LocalRing
import Mathlib.RingTheory.IntegralClosure
import Mathlib.RingTheory.Localization.FractionRing
import Mathlib.RingTheory.Localization.Integer
-import Mathlib.RingTheory.NonZeroDivisors
+import Mathlib.Algebra.GroupWithZero.NonZeroDivisors
#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"831c494092374cfe9f50591ed0ac81a25efc5b86"
Initially I just wanted to add more dot notations for IsIntegral and IsAlgebraic (done in #8437); then I noticed near-duplicates
Algebra.isIntegral_of_finite [Field R] [Ring A]
and
RingHom.IsIntegral.of_finite [CommRing R] [CommRing A]
so I went on to generalize the latter to cover the former, and generalized everything in the IntegralClosure file to the noncommutative case whenever possible.
In the process I noticed more golfs, which result in this PR. Most notably, isIntegral_of_mem_of_FG is now proven using Cayley-Hamilton and doesn't depend on the Noetherian case isIntegral_of_noetherian; the latter is now proven using the former. In total the golfs makes mathlib 227 lines leaner (+487 -714).
The main changes are in the single file RingTheory/IntegralClosure:
Change the definition of Algebra.IsIntegral
which makes it unfold to IsIntegral
rather than RingHom.IsIntegralElem
because the former has much more APIs.
Fix lemma names involving is_integral
which are actually about IsIntegralElem
:
RingHom.is_integral_map
→ RingHom.isIntegralElem_map
RingHom.is_integral_of_mem_closure
→ RingHom.IsIntegralElem.of_mem_closure
RingHom.is_integral_zero/one
→ RingHom.isIntegralElem_zero/one
RingHom.is_integral_add/neg/sub/mul/of_mul_unit
→ RingHom.IsIntegralElem.add/neg/sub/mul/of_mul_unit
Add a lemma Algebra.IsIntegral.of_injective
.
Move isIntegral_of_(submodule_)noetherian
down and golf them.
Remove (Algebra.)isIntegral_of_finite
that work only over fields, in favor of the more general (Algebra.)isIntegral.of_finite
.
Merge duplicate lemmas isIntegral_of_isScalarTower
and isIntegral_tower_top_of_isIntegral
into IsIntegral.tower_top
.
Golf IsIntegral.of_mem_of_fg
by first proving IsIntegral.of_finite
using Cayley-Hamilton.
Add a docstring mentioning the Kurosh problem at Algebra.IsIntegral.finite
. The negative solution to the problem means the theorem doesn't generalize to noncommutative algebras.
Golf IsIntegral.tmul
and isField_of_isIntegral_of_isField(')
.
Combine isIntegral_trans_aux
into isIntegral_trans
and golf.
Add Algebra
namespace to isIntegral_sup
.
rename lemmas for dot notation:
RingHom.isIntegral_trans
→ RingHom.IsIntegral.trans
RingHom.isIntegral_quotient/tower_bot/top_of_isIntegral
→ RingHom.IsIntegral.quotient/tower_bot/top
isIntegral_of_mem_closure'
→ IsIntegral.of_mem_closure'
(and the '' version)
isIntegral_of_surjective
→ Algebra.isIntegral_of_surjective
The next changed file is RingTheory/Algebraic:
Rename:
of_larger_base
→ tower_top
(for consistency with IsIntegral
)
Algebra.isAlgebraic_of_finite
→ Algebra.IsAlgebraic.of_finite
Algebra.isAlgebraic_trans
→ Algebra.IsAlgebraic.trans
Add new lemmasAlgebra.IsIntegral.isAlgebraic
, isAlgebraic_algHom_iff
, and Algebra.IsAlgebraic.of_injective
to streamline some proofs.
The generalization from CommRing to Ring requires an additional lemma scaleRoots_eval₂_mul_of_commute
in Polynomial/ScaleRoots.
A lemma Algebra.lmul_injective
is added to Algebra/Bilinear (in order to golf the proof of IsIntegral.of_mem_of_fg
).
In all other files, I merely fix the changed names, or use newly available dot notations.
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -232,9 +232,7 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
obtain ⟨⟨s, ⟨u, hu⟩⟩, hx⟩ := surj (Algebra.algebraMapSubmonoid S M) x
obtain ⟨v, hv⟩ := hu
obtain ⟨v', hv'⟩ := isUnit_iff_exists_inv'.1 (map_units Rₘ ⟨v, hv.1⟩)
- refine'
- @IsIntegral.of_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _
- _
+ refine @IsIntegral.of_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' ?_ ?_
· replace hv' := congr_arg (@algebraMap Rₘ Sₘ _ _ (localizationAlgebra M S)) hv'
rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
-- Porting note: added argument
@@ -343,7 +341,7 @@ the integral closure `C` of `A` in `L` has fraction field `L`. -/
theorem isFractionRing_of_finite_extension [Algebra K L] [IsScalarTower A K L]
[FiniteDimensional K L] : IsFractionRing C L :=
isFractionRing_of_algebraic A C
- (IsFractionRing.comap_isAlgebraic_iff.mpr (isAlgebraic_of_finite K L)) fun _ hx =>
+ (IsFractionRing.comap_isAlgebraic_iff.mpr (Algebra.IsAlgebraic.of_finite K L)) fun _ hx =>
IsFractionRing.to_map_eq_zero_iff.mp
((_root_.map_eq_zero <|
algebraMap K L).mp <| (IsScalarTower.algebraMap_apply _ _ _ _).symm.trans hx)
@@ -392,12 +390,11 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
obtain ⟨a : S, b, ha, rfl⟩ := @div_surjective S _ _ _ _ _ _ x
obtain ⟨f, hf₁, hf₂⟩ := h b
rw [div_eq_mul_inv]
- refine' IsIntegral.mul _ _
+ refine IsIntegral.mul ?_ ?_
· rw [← isAlgebraic_iff_isIntegral]
- refine'
- IsAlgebraic.of_larger_base_of_injective
- (NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)) _
- exact IsAlgebraic.algebraMap (h a)
+ refine .tower_top_of_injective
+ (NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)) ?_
+ exact .algebraMap (h a)
· rw [← isAlgebraic_iff_isIntegral]
use (f.map (algebraMap R (FractionRing R))).reverse
constructor
This PR tests a string-based tool for renaming declarations.
Inspired by this Zulip thread, I am trying to reduce the diff of #8406.
This PR makes the following renames:
| From | To |
@@ -233,7 +233,7 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
obtain ⟨v, hv⟩ := hu
obtain ⟨v', hv'⟩ := isUnit_iff_exists_inv'.1 (map_units Rₘ ⟨v, hv.1⟩)
refine'
- @isIntegral_of_isIntegral_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _
+ @IsIntegral.of_mul_unit Rₘ _ _ _ (localizationAlgebra M S) x (algebraMap S Sₘ u) v' _
_
· replace hv' := congr_arg (@algebraMap Rₘ Sₘ _ _ (localizationAlgebra M S)) hv'
rw [RingHom.map_mul, RingHom.map_one, ← RingHom.comp_apply _ (algebraMap R Rₘ)] at hv'
@@ -392,12 +392,12 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
obtain ⟨a : S, b, ha, rfl⟩ := @div_surjective S _ _ _ _ _ _ x
obtain ⟨f, hf₁, hf₂⟩ := h b
rw [div_eq_mul_inv]
- refine' isIntegral_mul _ _
+ refine' IsIntegral.mul _ _
· rw [← isAlgebraic_iff_isIntegral]
refine'
- _root_.isAlgebraic_of_larger_base_of_injective
+ IsAlgebraic.of_larger_base_of_injective
(NoZeroSMulDivisors.algebraMap_injective R (FractionRing R)) _
- exact isAlgebraic_algebraMap_of_isAlgebraic (h a)
+ exact IsAlgebraic.algebraMap (h a)
· rw [← isAlgebraic_iff_isIntegral]
use (f.map (algebraMap R (FractionRing R))).reverse
constructor
The other direction is a consequence of IsLocalization.map_units
.
Also do the same for LocalizationMap
and IsLocalizedModule
.
This means we have one less fact to prove when constructing an IsLocalization
(etc.) instance (thus many proofs are golfed), but once we construct it we still have access to the eq_iff_exists
lemmas (without the prime) so the API doesn't get less powerful.
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -333,9 +333,7 @@ theorem isFractionRing_of_algebraic (alg : IsAlgebraic A L)
by
simp only
rw [algebraMap_mk', ← IsScalarTower.algebraMap_apply A C L, hxy]⟩
- eq_iff_exists' := fun {x y} =>
- ⟨fun h => ⟨1, by simpa using algebraMap_injective C A L h⟩, fun ⟨c, hc⟩ =>
- congr_arg (algebraMap _ L) (mul_left_cancel₀ (mem_nonZeroDivisors_iff_ne_zero.mp c.2) hc)⟩ }
+ exists_of_eq := fun {x y} h => ⟨1, by simpa using algebraMap_injective C A L h⟩ }
#align is_integral_closure.is_fraction_ring_of_algebraic IsIntegralClosure.isFractionRing_of_algebraic
variable (K L)
@@ -83,14 +83,12 @@ theorem integerNormalization_spec (p : S[X]) :
use Classical.choose (exist_integer_multiples_of_finset M (p.support.image p.coeff))
intro i
rw [integerNormalization_coeff, coeffIntegerNormalization]
- split_ifs with hi -- Porting note: didn't remove the ifs
- · rw [dif_pos hi]
- exact
+ split_ifs with hi
+ · exact
Classical.choose_spec
(Classical.choose_spec (exist_integer_multiples_of_finset M (p.support.image p.coeff))
(p.coeff i) (Finset.mem_image.mpr ⟨i, hi, rfl⟩))
- · rw [dif_neg hi]
- rw [RingHom.map_zero, not_mem_support_iff.mp hi, smul_zero]
+ · rw [RingHom.map_zero, not_mem_support_iff.mp hi, smul_zero]
-- Porting note: was `convert (smul_zero _).symm, ...`
#align is_localization.integer_normalization_spec IsLocalization.integerNormalization_spec
This adds an AlgHom
version of eval₂RingHom'
, and a stronger ext lemma for noncommutative algebras.
This is a follow-up to leanprover-community/mathlib#9250
This better ext lemma golfs away most of a nasty proof.
@@ -114,7 +114,8 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
(p : S[X]) {x : R'} (hx : aeval x p = 0) : aeval x (integerNormalization M p) = 0 := by
- rw [aeval_def, IsScalarTower.algebraMap_eq R S R', integerNormalization_eval₂_eq_zero _ _ _ hx]
+ rw [aeval_def, IsScalarTower.algebraMap_eq R S R',
+ integerNormalization_eval₂_eq_zero _ (algebraMap _ _) _ hx]
#align is_localization.integer_normalization_aeval_eq_zero IsLocalization.integerNormalization_aeval_eq_zero
end IntegerNormalization
@@ -389,6 +389,8 @@ theorem isAlgebraic_iff' [Field K] [IsDomain R] [IsDomain S] [Algebra R K] [Alge
simp only [Algebra.IsAlgebraic]
constructor
· intro h x
+ letI := FractionRing.liftAlgebra R K
+ have := FractionRing.isScalarTower_liftAlgebra R K
rw [IsFractionRing.isAlgebraic_iff R (FractionRing R) K, isAlgebraic_iff_isIntegral]
obtain ⟨a : S, b, ha, rfl⟩ := @div_surjective S _ _ _ _ _ _ x
obtain ⟨f, hf₁, hf₂⟩ := h b
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -109,7 +109,7 @@ theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
let ⟨b, hb⟩ := integerNormalization_map_to_map M p
_root_.trans (eval₂_map (algebraMap R S) g x).symm
- (by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, MulZeroClass.mul_zero])
+ (by rw [hb, ← IsScalarTower.algebraMap_smul S (b : R) p, eval₂_smul, hx, mul_zero])
#align is_localization.integer_normalization_eval₂_eq_zero IsLocalization.integerNormalization_eval₂_eq_zero
theorem integerNormalization_aeval_eq_zero [Algebra R R'] [Algebra S R'] [IsScalarTower R S R']
@@ -200,7 +200,7 @@ theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type*} [CommR
· refine' monic_mul_C_of_leadingCoeff_mul_eq_one _
rwa [leadingCoeff_map_of_leadingCoeff_ne_zero (algebraMap R Rₘ)]
refine' fun hfp => zero_ne_one
- (_root_.trans (MulZeroClass.zero_mul b).symm (hfp ▸ hb) : (0 : Rₘ) = 1)
+ (_root_.trans (zero_mul b).symm (hfp ▸ hb) : (0 : Rₘ) = 1)
· refine' eval₂_mul_eq_zero_of_left _ _ _ _
erw [eval₂_map, IsLocalization.map_comp, ← hom_eval₂ _ f (algebraMap S Sₘ) x]
exact _root_.trans (congr_arg (algebraMap S Sₘ) hf) (RingHom.map_zero _)
@@ -279,7 +279,7 @@ theorem IsLocalization.scaleRoots_commonDenom_mem_lifts (p : Rₘ[X])
· rw [← Algebra.smul_def]
exact ⟨_, IsLocalization.map_integerMultiple M p.support p.coeff ⟨n, h₁⟩⟩
· rw [Polynomial.not_mem_support_iff] at h₁
- rw [h₁, MulZeroClass.zero_mul]
+ rw [h₁, zero_mul]
exact zero_mem (algebraMap R Rₘ).range
#align is_localization.scale_roots_common_denom_mem_lifts IsLocalization.scaleRoots_commonDenom_mem_lifts
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -27,9 +27,9 @@ commutative ring, field of fractions
-/
-variable {R : Type _} [CommRing R] (M : Submonoid R) {S : Type _} [CommRing S]
+variable {R : Type*} [CommRing R] (M : Submonoid R) {S : Type*} [CommRing S]
-variable [Algebra R S] {P : Type _} [CommRing P]
+variable [Algebra R S] {P : Type*} [CommRing P]
open BigOperators Polynomial
@@ -103,7 +103,7 @@ theorem integerNormalization_map_to_map (p : S[X]) :
exact hb i⟩
#align is_localization.integer_normalization_map_to_map IsLocalization.integerNormalization_map_to_map
-variable {R' : Type _} [CommRing R']
+variable {R' : Type*} [CommRing R']
theorem integerNormalization_eval₂_eq_zero (g : S →+* R') (p : S[X]) {x : R'}
(hx : eval₂ g x p = 0) : eval₂ (g.comp (algebraMap R S)) x (integerNormalization M p) = 0 :=
@@ -125,7 +125,7 @@ namespace IsFractionRing
open IsLocalization
-variable {A K C : Type _} [CommRing A] [IsDomain A] [Field K] [Algebra A K] [IsFractionRing A K]
+variable {A K C : Type*} [CommRing A] [IsDomain A] [Field K] [Algebra A K] [IsFractionRing A K]
variable [CommRing C]
@@ -177,7 +177,7 @@ open IsLocalization
section IsIntegral
-variable {Rₘ Sₘ : Type _} [CommRing Rₘ] [CommRing Sₘ]
+variable {Rₘ Sₘ : Type*} [CommRing Rₘ] [CommRing Sₘ]
variable [Algebra R Rₘ] [IsLocalization M Rₘ]
@@ -187,9 +187,9 @@ variable {M}
open Polynomial
-theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type _} [CommRing R] [CommRing S]
+theorem RingHom.isIntegralElem_localization_at_leadingCoeff {R S : Type*} [CommRing R] [CommRing S]
(f : R →+* S) (x : S) (p : R[X]) (hf : p.eval₂ f x = 0) (M : Submonoid R)
- (hM : p.leadingCoeff ∈ M) {Rₘ Sₘ : Type _} [CommRing Rₘ] [CommRing Sₘ] [Algebra R Rₘ]
+ (hM : p.leadingCoeff ∈ M) {Rₘ Sₘ : Type*} [CommRing Rₘ] [CommRing Sₘ] [Algebra R Rₘ]
[IsLocalization M Rₘ] [Algebra S Sₘ] [IsLocalization (M.map f : Submonoid S) Sₘ] :
(map Sₘ f M.le_comap_map : Rₘ →+* _).IsIntegralElem (algebraMap S Sₘ x) := by
by_cases triv : (1 : Rₘ) = 0
@@ -246,7 +246,7 @@ theorem isIntegral_localization (H : Algebra.IsIntegral R S) :
exact hx.symm ▸ is_integral_localization_at_leadingCoeff p hp.2 (hp.1.symm ▸ M.one_mem)
#align is_integral_localization isIntegral_localization
-theorem isIntegral_localization' {R S : Type _} [CommRing R] [CommRing S] {f : R →+* S}
+theorem isIntegral_localization' {R S : Type*} [CommRing R] [CommRing S] {f : R →+* S}
(hf : f.IsIntegral) (M : Submonoid R) :
(map (Localization (M.map (f : R →* S))) f
(M.le_comap_map : _ ≤ Submonoid.comap (f : R →* S) _) :
@@ -304,14 +304,14 @@ theorem IsIntegral.exists_multiple_integral_of_isLocalization [Algebra Rₘ S] [
end IsIntegral
-variable {A K : Type _} [CommRing A] [IsDomain A]
+variable {A K : Type*} [CommRing A] [IsDomain A]
namespace IsIntegralClosure
variable (A)
-variable {L : Type _} [Field K] [Field L] [Algebra A K] [Algebra A L] [IsFractionRing A K]
+variable {L : Type*} [Field K] [Field L] [Algebra A K] [Algebra A L] [IsFractionRing A K]
-variable (C : Type _) [CommRing C] [IsDomain C] [Algebra C L] [IsIntegralClosure C A L]
+variable (C : Type*) [CommRing C] [IsDomain C] [Algebra C L] [IsIntegralClosure C A L]
variable [Algebra A C] [IsScalarTower A C L]
@@ -356,7 +356,7 @@ end IsIntegralClosure
namespace integralClosure
-variable {L : Type _} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
+variable {L : Type*} [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
open Algebra
@@ -431,7 +431,7 @@ variable {S K}
/-- If the `S`-multiples of `a` are contained in some `R`-span, then `Frac(S)`-multiples of `a`
are contained in the equivalent `Frac(R)`-span. -/
-theorem ideal_span_singleton_map_subset {L : Type _} [IsDomain R] [IsDomain S] [Field K] [Field L]
+theorem ideal_span_singleton_map_subset {L : Type*} [IsDomain R] [IsDomain S] [Field K] [Field L]
[Algebra R K] [Algebra R L] [Algebra S L] [IsIntegralClosure S R L] [IsFractionRing S L]
[Algebra K L] [IsScalarTower R S L] [IsScalarTower R K L] {a : S} {b : Set S}
(alg : Algebra.IsAlgebraic R L) (inj : Function.Injective (algebraMap R L))
@@ -2,11 +2,6 @@
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.integral
-! leanprover-community/mathlib commit 831c494092374cfe9f50591ed0ac81a25efc5b86
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Polynomial.Lifts
import Mathlib.GroupTheory.MonoidLocalization
@@ -17,6 +12,8 @@ import Mathlib.RingTheory.Localization.FractionRing
import Mathlib.RingTheory.Localization.Integer
import Mathlib.RingTheory.NonZeroDivisors
+#align_import ring_theory.localization.integral from "leanprover-community/mathlib"@"831c494092374cfe9f50591ed0ac81a25efc5b86"
+
/-!
# Integral and algebraic elements of a fraction field
The unported dependencies are