field_theory.minpoly.field
⟷
Mathlib.FieldTheory.Minpoly.Field
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
-/
-import Data.Polynomial.FieldDivision
+import Algebra.Polynomial.FieldDivision
import FieldTheory.Minpoly.Basic
import RingTheory.Algebraic
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -88,7 +88,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
have := degree_le_of_ne_zero A x hnz _
· contrapose! this
exact degree_mod_by_monic_lt _ (monic hx)
- · rw [← mod_by_monic_add_div p (monic hx)] at hp
+ · rw [← mod_by_monic_add_div p (monic hx)] at hp
simpa using hp
#align minpoly.dvd minpoly.dvd
-/
@@ -183,7 +183,7 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
nat_degree_comp, nat_degree_X_sub_C, mul_one]
rwa [degree_eq_nat_degree (minpoly.ne_zero hx),
degree_eq_nat_degree (qmo.comp_X_add_C _).NeZero, WithBot.coe_le_coe, nat_degree_comp,
- nat_degree_X_add_C, mul_one] at H
+ nat_degree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
-/
@@ -226,7 +226,7 @@ theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
suffices (f : E →ₗ[F] K) = g by rwa [DFunLike.ext'_iff] at this ⊢
- rw [funext_iff] at h
+ rw [funext_iff] at h
exact
LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
subtype.ext_iff.mp (h ⟨e, he⟩)
@@ -312,7 +312,7 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
((irreducible_X_sub_C y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
(dvd_iff_isRoot.2 h))
have := aeval A x
- rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
+ rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
#align minpoly.root minpoly.root
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -225,7 +225,7 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
- suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this ⊢
+ suffices (f : E →ₗ[F] K) = g by rwa [DFunLike.ext'_iff] at this ⊢
rw [funext_iff] at h
exact
LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
-/
-import Mathbin.Data.Polynomial.FieldDivision
-import Mathbin.FieldTheory.Minpoly.Basic
-import Mathbin.RingTheory.Algebraic
+import Data.Polynomial.FieldDivision
+import FieldTheory.Minpoly.Basic
+import RingTheory.Algebraic
#align_import field_theory.minpoly.field from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -155,7 +155,6 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
-/
-#print minpoly.eq_of_algebraMap_eq /-
/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
We take `h : y = algebra_map L T x` as an argument because `rw h` typically fails
@@ -170,7 +169,6 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
((aeval_algebraMap_eq_zero_iff_of_injective hST).mp
(h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
--/
#print minpoly.add_algebraMap /-
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
mathlib commit https://github.com/leanprover-community/mathlib/commit/d11f435d4e34a6cea0a1797d6b625b0c170be845
@@ -49,10 +49,10 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
-/
-#print minpoly.ne_zero_of_finite_field_extension /-
-theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
+#print minpoly.ne_zero_of_finite /-
+theorem ne_zero_of_finite (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
minpoly.ne_zero <| isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
-#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
+#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite
-/
#print minpoly.unique /-
@@ -218,8 +218,8 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
(x : range (FiniteDimensional.finBasis F E : _ → E)) :
{ l : K // l ∈ (((minpoly F x.1).map (algebraMap F K)).roots : Multiset K) } :=
⟨φ x, by
- rw [mem_roots_map (minpoly.ne_zero_of_finite_field_extension F x.val), Subtype.val_eq_coe, ←
- aeval_def, aeval_alg_hom_apply, minpoly.aeval, map_zero]⟩
+ rw [mem_roots_map (minpoly.ne_zero_of_finite F x.val), Subtype.val_eq_coe, ← aeval_def,
+ aeval_alg_hom_apply, minpoly.aeval, map_zero]⟩
#align minpoly.roots_of_min_poly_pi_type minpoly.rootsOfMinPolyPiType
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
-
-! This file was ported from Lean 3 source module field_theory.minpoly.field
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Polynomial.FieldDivision
import Mathbin.FieldTheory.Minpoly.Basic
import Mathbin.RingTheory.Algebraic
+#align_import field_theory.minpoly.field from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
/-!
# Minimal polynomials on an algebra over a field
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -39,6 +39,7 @@ section Ring
variable [Ring B] [Algebra A B] (x : B)
+#print minpoly.degree_le_of_ne_zero /-
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
the assumptions on `A` in exchange for stronger assumptions on `B`. -/
@@ -49,11 +50,15 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
min A x (monic_mul_leadingCoeff_inv pnz) (by simp [hp])
_ = degree p := degree_mul_leadingCoeff_inv p pnz
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
+-/
+#print minpoly.ne_zero_of_finite_field_extension /-
theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
minpoly.ne_zero <| isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
+-/
+#print minpoly.unique /-
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
is equal to the minimal polynomial of `x`. See also `minpoly.gcd_unique` which relaxes the
@@ -70,7 +75,9 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
· rw [(monic hx).leadingCoeff, pmonic.leading_coeff]
· exact le_antisymm (min A x pmonic hp) (pmin (minpoly A x) (monic hx) (aeval A x))
#align minpoly.unique minpoly.unique
+-/
+#print minpoly.dvd /-
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
assumptions on `B`. -/
@@ -87,13 +94,17 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
· rw [← mod_by_monic_add_div p (monic hx)] at hp
simpa using hp
#align minpoly.dvd minpoly.dvd
+-/
+#print minpoly.dvd_map_of_isScalarTower /-
theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by refine' minpoly.dvd K x _;
rw [aeval_map_algebra_map, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
+-/
+#print minpoly.dvd_map_of_isScalarTower' /-
theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R] [CommRing S]
[Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L] [Algebra R L]
[IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
@@ -103,7 +114,9 @@ theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [Comm
rw [← map_aeval_eq_aeval_map, minpoly.aeval, map_zero]
rw [← IsScalarTower.algebraMap_eq, ← IsScalarTower.algebraMap_eq]
#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_isScalarTower'
+-/
+#print minpoly.aeval_of_isScalarTower /-
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
[Algebra R K] [Algebra K T] [Algebra R T] [IsScalarTower R K T] [CommSemiring U] [Algebra K U]
@@ -113,9 +126,11 @@ theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field
eval₂_eq_zero_of_dvd_of_eval₂_eq_zero (algebraMap K U) y
(minpoly.dvd_map_of_isScalarTower R K x) hy
#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTower
+-/
variable {A x}
+#print minpoly.eq_of_irreducible_of_monic /-
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) (hp3 : p.Monic) : p = minpoly A x :=
let ⟨q, hq⟩ := dvd A x hp2
@@ -123,7 +138,9 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
mul_one (minpoly A x) ▸ hq.symm ▸ Associated.mul_left _ <|
associated_one_iff_isUnit.2 <| (hp1.isUnit_or_isUnit hq).resolve_left <| not_isUnit A x
#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monic
+-/
+#print minpoly.eq_of_irreducible /-
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
by
@@ -139,7 +156,9 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
· rw [aeval_mul, hp2, MulZeroClass.zero_mul]
· rwa [Polynomial.Monic, leading_coeff_mul, leading_coeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
+-/
+#print minpoly.eq_of_algebraMap_eq /-
/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
We take `h : y = algebra_map L T x` as an argument because `rw h` typically fails
@@ -154,7 +173,9 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
((aeval_algebraMap_eq_zero_iff_of_injective hST).mp
(h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
+-/
+#print minpoly.add_algebraMap /-
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
by
@@ -169,11 +190,14 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
degree_eq_nat_degree (qmo.comp_X_add_C _).NeZero, WithBot.coe_le_coe, nat_degree_comp,
nat_degree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
+-/
+#print minpoly.sub_algebraMap /-
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
simpa [sub_eq_add_neg] using add_algebra_map hx (-a)
#align minpoly.sub_algebra_map minpoly.sub_algebraMap
+-/
section AlgHomFintype
@@ -202,6 +226,7 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
#align minpoly.roots_of_min_poly_pi_type minpoly.rootsOfMinPolyPiType
-/
+#print minpoly.aux_inj_roots_of_min_poly /-
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
@@ -211,6 +236,7 @@ theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
subtype.ext_iff.mp (h ⟨e, he⟩)
#align minpoly.aux_inj_roots_of_min_poly minpoly.aux_inj_roots_of_min_poly
+-/
#print minpoly.AlgHom.fintype /-
/-- Given field extensions `E/F` and `K/F`, with `E/F` finite, there are finitely many `F`-algebra
@@ -227,29 +253,37 @@ end AlgHomFintype
variable (B) [Nontrivial B]
+#print minpoly.eq_X_sub_C /-
/-- If `B/K` is a nontrivial algebra over a field, and `x` is an element of `K`,
then the minimal polynomial of `algebra_map K B x` is `X - C x`. -/
theorem eq_X_sub_C (a : A) : minpoly A (algebraMap A B a) = X - C a :=
eq_X_sub_C_of_algebraMap_inj a (algebraMap A B).Injective
#align minpoly.eq_X_sub_C minpoly.eq_X_sub_C
+-/
+#print minpoly.eq_X_sub_C' /-
theorem eq_X_sub_C' (a : A) : minpoly A a = X - C a :=
eq_X_sub_C A a
#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'
+-/
variable (A)
+#print minpoly.zero /-
/-- The minimal polynomial of `0` is `X`. -/
@[simp]
theorem zero : minpoly A (0 : B) = X := by
simpa only [add_zero, C_0, sub_eq_add_neg, neg_zero, RingHom.map_zero] using eq_X_sub_C B (0 : A)
#align minpoly.zero minpoly.zero
+-/
+#print minpoly.one /-
/-- The minimal polynomial of `1` is `X - 1`. -/
@[simp]
theorem one : minpoly A (1 : B) = X - 1 := by
simpa only [RingHom.map_one, C_1, sub_eq_add_neg] using eq_X_sub_C B (1 : A)
#align minpoly.one minpoly.one
+-/
end Ring
@@ -259,6 +293,7 @@ variable [Ring B] [IsDomain B] [Algebra A B]
variable {A} {x : B}
+#print minpoly.prime /-
/-- A minimal polynomial is prime. -/
theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
by
@@ -268,7 +303,9 @@ theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
replace : Polynomial.aeval x p = 0 ∨ Polynomial.aeval x q = 0 := by simpa
exact Or.imp (dvd A x) (dvd A x) this
#align minpoly.prime minpoly.prime
+-/
+#print minpoly.root /-
/-- If `L/K` is a field extension and an element `y` of `K` is a root of the minimal polynomial
of an element `x ∈ L`, then `y` maps to `x` under the field embedding. -/
theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y) :
@@ -282,7 +319,9 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
have := aeval A x
rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
#align minpoly.root minpoly.root
+-/
+#print minpoly.coeff_zero_eq_zero /-
/-- The constant coefficient of the minimal polynomial of `x` is `0` if and only if `x = 0`. -/
@[simp]
theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔ x = 0 :=
@@ -294,11 +333,14 @@ theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔
exact RingHom.map_zero _
· rintro rfl; simp
#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zero
+-/
+#print minpoly.coeff_zero_ne_zero /-
/-- The minimal polynomial of a nonzero element has nonzero constant coefficient. -/
theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly A x) 0 ≠ 0 := by
contrapose! h; simpa only [hx, coeff_zero_eq_zero] using h
#align minpoly.coeff_zero_ne_zero minpoly.coeff_zero_ne_zero
+-/
end IsDomain
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -48,7 +48,6 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
degree (minpoly A x) ≤ degree (p * C (leadingCoeff p)⁻¹) :=
min A x (monic_mul_leadingCoeff_inv pnz) (by simp [hp])
_ = degree p := degree_mul_leadingCoeff_inv p pnz
-
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -95,15 +95,15 @@ theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field
rw [aeval_map_algebra_map, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
-theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
- [CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
- [Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
+theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R] [CommRing S]
+ [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L] [Algebra R L]
+ [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
minpoly K (algebraMap S L s) ∣ map (algebraMap R K) (minpoly R s) :=
by
apply minpoly.dvd K (algebraMap S L s)
rw [← map_aeval_eq_aeval_map, minpoly.aeval, map_zero]
rw [← IsScalarTower.algebraMap_eq, ← IsScalarTower.algebraMap_eq]
-#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'
+#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_isScalarTower'
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -85,7 +85,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
have := degree_le_of_ne_zero A x hnz _
· contrapose! this
exact degree_mod_by_monic_lt _ (monic hx)
- · rw [← mod_by_monic_add_div p (monic hx)] at hp
+ · rw [← mod_by_monic_add_div p (monic hx)] at hp
simpa using hp
#align minpoly.dvd minpoly.dvd
@@ -168,7 +168,7 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
nat_degree_comp, nat_degree_X_sub_C, mul_one]
rwa [degree_eq_nat_degree (minpoly.ne_zero hx),
degree_eq_nat_degree (qmo.comp_X_add_C _).NeZero, WithBot.coe_le_coe, nat_degree_comp,
- nat_degree_X_add_C, mul_one] at H
+ nat_degree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
@@ -206,8 +206,8 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
- suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this⊢
- rw [funext_iff] at h
+ suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this ⊢
+ rw [funext_iff] at h
exact
LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
subtype.ext_iff.mp (h ⟨e, he⟩)
@@ -281,7 +281,7 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
((irreducible_X_sub_C y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
(dvd_iff_isRoot.2 h))
have := aeval A x
- rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
+ rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
#align minpoly.root minpoly.root
/-- The constant coefficient of the minimal polynomial of `x` is `0` if and only if `x = 0`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -25,7 +25,7 @@ are irreducible, and uniquely determined by their defining property.
-/
-open Classical Polynomial
+open scoped Classical Polynomial
open Polynomial Set Function minpoly
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -39,9 +39,6 @@ section Ring
variable [Ring B] [Algebra A B] (x : B)
-/- warning: minpoly.degree_le_of_ne_zero -> minpoly.degree_le_of_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zeroₓ'. -/
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
the assumptions on `A` in exchange for stronger assumptions on `B`. -/
@@ -54,19 +51,10 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
-/- warning: minpoly.ne_zero_of_finite_field_extension -> minpoly.ne_zero_of_finite_field_extension is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (e : B) [_inst_4 : FiniteDimensional.{u1, u2} A B (Field.toDivisionRing.{u1} A _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)], Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 e) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))))
-but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (e : B) [_inst_4 : FiniteDimensional.{u2, u1} A B (Field.toDivisionRing.{u2} A _inst_1) (Ring.toAddCommGroup.{u1} B _inst_2) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)], Ne.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 e) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extensionₓ'. -/
theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
minpoly.ne_zero <| isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
-/- warning: minpoly.unique -> minpoly.unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.unique minpoly.uniqueₓ'. -/
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
is equal to the minimal polynomial of `x`. See also `minpoly.gcd_unique` which relaxes the
@@ -84,9 +72,6 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
· exact le_antisymm (min A x pmonic hp) (pmin (minpoly A x) (monic hx) (aeval A x))
#align minpoly.unique minpoly.unique
-/- warning: minpoly.dvd -> minpoly.dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.dvd minpoly.dvdₓ'. -/
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
assumptions on `B`. -/
@@ -104,18 +89,12 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
simpa using hp
#align minpoly.dvd minpoly.dvd
-/- warning: minpoly.dvd_map_of_is_scalar_tower -> minpoly.dvd_map_of_isScalarTower is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTowerₓ'. -/
theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by refine' minpoly.dvd K x _;
rw [aeval_map_algebra_map, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
-/- warning: minpoly.dvd_map_of_is_scalar_tower' -> minpoly.dvd_map_of_is_scalar_tower' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'ₓ'. -/
theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
[CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
[Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
@@ -126,9 +105,6 @@ theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [Co
rw [← IsScalarTower.algebraMap_eq, ← IsScalarTower.algebraMap_eq]
#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'
-/- warning: minpoly.aeval_of_is_scalar_tower -> minpoly.aeval_of_isScalarTower is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTowerₓ'. -/
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
[Algebra R K] [Algebra K T] [Algebra R T] [IsScalarTower R K T] [CommSemiring U] [Algebra K U]
@@ -141,9 +117,6 @@ theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field
variable {A x}
-/- warning: minpoly.eq_of_irreducible_of_monic -> minpoly.eq_of_irreducible_of_monic is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monicₓ'. -/
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) (hp3 : p.Monic) : p = minpoly A x :=
let ⟨q, hq⟩ := dvd A x hp2
@@ -152,9 +125,6 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
associated_one_iff_isUnit.2 <| (hp1.isUnit_or_isUnit hq).resolve_left <| not_isUnit A x
#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monic
-/- warning: minpoly.eq_of_irreducible -> minpoly.eq_of_irreducible is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible minpoly.eq_of_irreducibleₓ'. -/
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
by
@@ -171,9 +141,6 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
· rwa [Polynomial.Monic, leading_coeff_mul, leading_coeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
-/- warning: minpoly.eq_of_algebra_map_eq -> minpoly.eq_of_algebraMap_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eqₓ'. -/
/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
We take `h : y = algebra_map L T x` as an argument because `rw h` typically fails
@@ -189,9 +156,6 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
(h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
-/- warning: minpoly.add_algebra_map -> minpoly.add_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.add_algebra_map minpoly.add_algebraMapₓ'. -/
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
by
@@ -207,9 +171,6 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
nat_degree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
-/- warning: minpoly.sub_algebra_map -> minpoly.sub_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.sub_algebra_map minpoly.sub_algebraMapₓ'. -/
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
simpa [sub_eq_add_neg] using add_algebra_map hx (-a)
@@ -242,9 +203,6 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
#align minpoly.roots_of_min_poly_pi_type minpoly.rootsOfMinPolyPiType
-/
-/- warning: minpoly.aux_inj_roots_of_min_poly -> minpoly.aux_inj_roots_of_min_poly is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.aux_inj_roots_of_min_poly minpoly.aux_inj_roots_of_min_polyₓ'. -/
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
@@ -270,42 +228,24 @@ end AlgHomFintype
variable (B) [Nontrivial B]
-/- warning: minpoly.eq_X_sub_C -> minpoly.eq_X_sub_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C minpoly.eq_X_sub_Cₓ'. -/
/-- If `B/K` is a nontrivial algebra over a field, and `x` is an element of `K`,
then the minimal polynomial of `algebra_map K B x` is `X - C x`. -/
theorem eq_X_sub_C (a : A) : minpoly A (algebraMap A B a) = X - C a :=
eq_X_sub_C_of_algebraMap_inj a (algebraMap A B).Injective
#align minpoly.eq_X_sub_C minpoly.eq_X_sub_C
-/- warning: minpoly.eq_X_sub_C' -> minpoly.eq_X_sub_C' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'ₓ'. -/
theorem eq_X_sub_C' (a : A) : minpoly A a = X - C a :=
eq_X_sub_C A a
#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'
variable (A)
-/- warning: minpoly.zero -> minpoly.zero is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B], Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))
-but is expected to have type
- forall (A : Type.{u2}) (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B], Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align minpoly.zero minpoly.zeroₓ'. -/
/-- The minimal polynomial of `0` is `X`. -/
@[simp]
theorem zero : minpoly A (0 : B) = X := by
simpa only [add_zero, C_0, sub_eq_add_neg, neg_zero, RingHom.map_zero] using eq_X_sub_C B (0 : A)
#align minpoly.zero minpoly.zero
-/- warning: minpoly.one -> minpoly.one is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B], Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u2} B 1 (OfNat.mk.{u2} B 1 (One.one.{u2} B (AddMonoidWithOne.toOne.{u2} B (AddGroupWithOne.toAddMonoidWithOne.{u2} B (AddCommGroupWithOne.toAddGroupWithOne.{u2} B (Ring.toAddCommGroupWithOne.{u2} B _inst_2)))))))) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 1 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 1 (One.one.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.hasOne.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))))))
-but is expected to have type
- forall (A : Type.{u2}) (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B], Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u1} B 1 (One.toOfNat1.{u1} B (Semiring.toOne.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (instHSub.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.sub.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.one.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.one minpoly.oneₓ'. -/
/-- The minimal polynomial of `1` is `X - 1`. -/
@[simp]
theorem one : minpoly A (1 : B) = X - 1 := by
@@ -320,12 +260,6 @@ variable [Ring B] [IsDomain B] [Algebra A B]
variable {A} {x : B}
-/- warning: minpoly.prime -> minpoly.prime is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Prime.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (CommSemiring.toCommMonoidWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.commSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x))
-but is expected to have type
- forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Prime.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (IsDomain.toCancelCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)) (Field.isDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x))
-Case conversion may be inaccurate. Consider using '#align minpoly.prime minpoly.primeₓ'. -/
/-- A minimal polynomial is prime. -/
theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
by
@@ -336,12 +270,6 @@ theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
exact Or.imp (dvd A x) (dvd A x) this
#align minpoly.prime minpoly.prime
-/- warning: minpoly.root -> minpoly.root is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (forall {y : A}, (Polynomial.IsRoot.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) y) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_4) y) x))
-but is expected to have type
- forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (forall {y : A}, (Polynomial.IsRoot.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) y) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_4) y) x))
-Case conversion may be inaccurate. Consider using '#align minpoly.root minpoly.rootₓ'. -/
/-- If `L/K` is a field extension and an element `y` of `K` is a root of the minimal polynomial
of an element `x ∈ L`, then `y` maps to `x` under the field embedding. -/
theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y) :
@@ -356,12 +284,6 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
#align minpoly.root minpoly.root
-/- warning: minpoly.coeff_zero_eq_zero -> minpoly.coeff_zero_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Iff (Eq.{succ u1} A (Polynomial.coeff.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (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 (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))))))))) (Eq.{succ u2} B x (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))))
-but is expected to have type
- forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Iff (Eq.{succ u2} A (Polynomial.coeff.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CommGroupWithZero.toCommMonoidWithZero.{u2} A (Semifield.toCommGroupWithZero.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Eq.{succ u1} B x (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zeroₓ'. -/
/-- The constant coefficient of the minimal polynomial of `x` is `0` if and only if `x = 0`. -/
@[simp]
theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔ x = 0 :=
@@ -374,12 +296,6 @@ theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔
· rintro rfl; simp
#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zero
-/- warning: minpoly.coeff_zero_ne_zero -> minpoly.coeff_zero_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Ne.{succ u2} B x (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Ne.{succ u1} A (Polynomial.coeff.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (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 (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))))))))
-but is expected to have type
- forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Ne.{succ u1} B x (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) -> (Ne.{succ u2} A (Polynomial.coeff.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CommGroupWithZero.toCommMonoidWithZero.{u2} A (Semifield.toCommGroupWithZero.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.coeff_zero_ne_zero minpoly.coeff_zero_ne_zeroₓ'. -/
/-- The minimal polynomial of a nonzero element has nonzero constant coefficient. -/
theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly A x) 0 ≠ 0 := by
contrapose! h; simpa only [hx, coeff_zero_eq_zero] using h
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -94,9 +94,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
by
by_cases hp0 : p = 0
· simp only [hp0, dvd_zero]
- have hx : IsIntegral A x := by
- rw [← isAlgebraic_iff_isIntegral]
- exact ⟨p, hp0, hp⟩
+ have hx : IsIntegral A x := by rw [← isAlgebraic_iff_isIntegral]; exact ⟨p, hp0, hp⟩
rw [← dvd_iff_mod_by_monic_eq_zero (monic hx)]
by_contra hnz
have := degree_le_of_ne_zero A x hnz _
@@ -111,9 +109,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTowerₓ'. -/
theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
- minpoly K x ∣ (minpoly A x).map (algebraMap A K) :=
- by
- refine' minpoly.dvd K x _
+ minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by refine' minpoly.dvd K x _;
rw [aeval_map_algebra_map, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
@@ -375,8 +371,7 @@ theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔
have zero_root := zero_is_root_of_coeff_zero_eq_zero h
rw [← root hx zero_root]
exact RingHom.map_zero _
- · rintro rfl
- simp
+ · rintro rfl; simp
#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zero
/- warning: minpoly.coeff_zero_ne_zero -> minpoly.coeff_zero_ne_zero is a dubious translation:
@@ -386,10 +381,8 @@ but is expected to have type
forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Ne.{succ u1} B x (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) -> (Ne.{succ u2} A (Polynomial.coeff.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CommGroupWithZero.toCommMonoidWithZero.{u2} A (Semifield.toCommGroupWithZero.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))
Case conversion may be inaccurate. Consider using '#align minpoly.coeff_zero_ne_zero minpoly.coeff_zero_ne_zeroₓ'. -/
/-- The minimal polynomial of a nonzero element has nonzero constant coefficient. -/
-theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly A x) 0 ≠ 0 :=
- by
- contrapose! h
- simpa only [hx, coeff_zero_eq_zero] using h
+theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly A x) 0 ≠ 0 := by
+ contrapose! h; simpa only [hx, coeff_zero_eq_zero] using h
#align minpoly.coeff_zero_ne_zero minpoly.coeff_zero_ne_zero
end IsDomain
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -40,10 +40,7 @@ section Ring
variable [Ring B] [Algebra A B] (x : B)
/- warning: minpoly.degree_le_of_ne_zero -> minpoly.degree_le_of_ne_zero is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))))) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p))
-but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Ne.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.zero.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zeroₓ'. -/
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
@@ -68,10 +65,7 @@ theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minp
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
/- warning: minpoly.unique -> minpoly.unique is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (forall (q : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))), (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
-but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))), (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q))) -> (Eq.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.unique minpoly.uniqueₓ'. -/
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
@@ -91,10 +85,7 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
#align minpoly.unique minpoly.unique
/- warning: minpoly.dvd -> minpoly.dvd is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (semigroupDvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.commRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x) p)
-but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (Dvd.dvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (semigroupDvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commRing.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x) p)
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.dvd minpoly.dvdₓ'. -/
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
@@ -116,10 +107,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
#align minpoly.dvd minpoly.dvd
/- warning: minpoly.dvd_map_of_is_scalar_tower -> minpoly.dvd_map_of_isScalarTower is a dubious translation:
-lean 3 declaration is
- forall (A : Type.{u1}) (K : Type.{u2}) {R : Type.{u3}} [_inst_4 : CommRing.{u1} A] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u3} R] [_inst_7 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5)))] [_inst_8 : Algebra.{u1, u3} A R (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6))] [_inst_9 : Algebra.{u2, u3} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} A K R (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_5))))))))) (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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} K 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} K R (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_5))))))) (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} K R (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (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} K R (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (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} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} A 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} A R (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_4)))))) (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} A R (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4))) (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} A R (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4)) (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} A R (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6)) _inst_8)))))] (x : R), Dvd.Dvd.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (semigroupDvd.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalRing.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommRing.toNonUnitalRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))))))) (minpoly.{u2, u3} K R (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u3} R _inst_6) _inst_9 x) (Polynomial.map.{u1, u2} A K (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_4)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7) (minpoly.{u1, u3} A R _inst_4 (CommRing.toRing.{u3} R _inst_6) _inst_8 x))
-but is expected to have type
- forall (A : Type.{u3}) (K : Type.{u2}) {R : Type.{u1}} [_inst_4 : CommRing.{u3} A] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u1} R] [_inst_7 : Algebra.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))] [_inst_8 : Algebra.{u3, u1} A R (CommRing.toCommSemiring.{u3} A _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6))] [_inst_9 : Algebra.{u2, u1} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6))] [_inst_10 : IsScalarTower.{u3, u2, u1} A K R (Algebra.toSMul.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) _inst_7) (Algebra.toSMul.{u2, u1} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6)) _inst_9) (Algebra.toSMul.{u3, u1} A R (CommRing.toCommSemiring.{u3} A _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6)) _inst_8)] (x : R), Dvd.dvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (semigroupDvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))))))) (minpoly.{u2, u1} K R (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u1} R _inst_6) _inst_9 x) (Polynomial.map.{u3, u2} A K (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)))) (algebraMap.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) _inst_7) (minpoly.{u3, u1} A R _inst_4 (CommRing.toRing.{u1} R _inst_6) _inst_8 x))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTowerₓ'. -/
theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
@@ -130,10 +118,7 @@ theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
/- warning: minpoly.dvd_map_of_is_scalar_tower' -> minpoly.dvd_map_of_is_scalar_tower' is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) {S : Type.{u2}} (K : Type.{u3}) (L : Type.{u4}) [_inst_4 : CommRing.{u1} R] [_inst_5 : CommRing.{u2} S] [_inst_6 : Field.{u3} K] [_inst_7 : CommRing.{u4} L] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))] [_inst_9 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6)))] [_inst_10 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_11 : Algebra.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_12 : Algebra.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_13 : 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_6))))))))) (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_4)))))) (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_6))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_6))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_6)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6))) _inst_9))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_6))))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u3, u4} K L (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u3, u4} K L (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_11))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_4)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_12)))))] [_inst_14 : 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_5)))))))) (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_4)))))) (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_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5)) _inst_8))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_5)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} S L (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u2, u4} S L (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_10))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_4)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_12)))))] (s : S), Dvd.Dvd.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (semigroupDvd.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (SemigroupWithZero.toSemigroup.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalSemiring.toSemigroupWithZero.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalRing.toNonUnitalSemiring.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalCommRing.toNonUnitalRing.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (CommRing.toNonUnitalCommRing.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (Polynomial.commRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))))))) (minpoly.{u3, u4} K L (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6)) (CommRing.toRing.{u4} L _inst_7) _inst_11 (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_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_10) s)) (Polynomial.map.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6)))) (algebraMap.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6))) _inst_9) (minpoly.{u1, u2} R S _inst_4 (CommRing.toRing.{u2} S _inst_5) _inst_8 s))
-but is expected to have type
- forall (R : Type.{u4}) {S : Type.{u3}} (K : Type.{u2}) (L : Type.{u1}) [_inst_4 : CommRing.{u4} R] [_inst_5 : CommRing.{u3} S] [_inst_6 : Field.{u2} K] [_inst_7 : CommRing.{u1} L] [_inst_8 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))] [_inst_9 : Algebra.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))] [_inst_10 : Algebra.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_11 : Algebra.{u2, u1} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_12 : Algebra.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_13 : IsScalarTower.{u4, u2, u1} R K L (Algebra.toSMul.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_9) (Algebra.toSMul.{u2, u1} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_11) (Algebra.toSMul.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_12)] [_inst_14 : IsScalarTower.{u4, u3, u1} R S L (Algebra.toSMul.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5)) _inst_8) (Algebra.toSMul.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_10) (Algebra.toSMul.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_12)] (s : S), Dvd.dvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (semigroupDvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))))))) (minpoly.{u2, u1} K ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) s) (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) s) _inst_7) _inst_11 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))) (RingHom.instRingHomClassRingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))))))) (algebraMap.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_10) s)) (Polynomial.map.{u4, u2} R K (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)))) (algebraMap.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_9) (minpoly.{u4, u3} R S _inst_4 (CommRing.toRing.{u3} S _inst_5) _inst_8 s))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'ₓ'. -/
theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
[CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
@@ -146,10 +131,7 @@ theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [Co
#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'
/- warning: minpoly.aeval_of_is_scalar_tower -> minpoly.aeval_of_isScalarTower is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) {K : Type.{u2}} {T : Type.{u3}} {U : Type.{u4}} [_inst_4 : CommRing.{u1} R] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u3} T] [_inst_7 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5)))] [_inst_8 : Algebra.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_9 : Algebra.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} R K T (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} K T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K T (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_5))))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K T (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} K T (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R T (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_4)))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R T (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R T (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9)))))] [_inst_11 : CommSemiring.{u4} U] [_inst_12 : Algebra.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_13 : Algebra.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_14 : IsScalarTower.{u1, u2, u4} R K U (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u4} K U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} K U (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_5))))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} K U (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u2, u4} K U (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u4} R U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R U (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_4)))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R U (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u1, u4} R U (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13)))))] (x : T) (y : U), (Eq.{succ u4} U (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (fun (_x : AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) => (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) -> U) ([anonymous].{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (Polynomial.aeval.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12 y) (minpoly.{u2, u3} K T (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u3} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))))) -> (Eq.{succ u4} U (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (fun (_x : AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) -> U) ([anonymous].{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (Polynomial.aeval.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13 y) (minpoly.{u1, u3} R T _inst_4 (CommRing.toRing.{u3} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))))))))
-but is expected to have type
- forall (R : Type.{u4}) {K : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_4 : CommRing.{u4} R] [_inst_5 : Field.{u3} K] [_inst_6 : CommRing.{u2} T] [_inst_7 : Algebra.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))] [_inst_8 : Algebra.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_9 : Algebra.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_10 : IsScalarTower.{u4, u3, u2} R K T (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_8) (Algebra.toSMul.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_9)] [_inst_11 : CommSemiring.{u1} U] [_inst_12 : Algebra.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_13 : Algebra.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_14 : IsScalarTower.{u4, u3, u1} R K U (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12) (Algebra.toSMul.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)] (x : T) (y : U), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) _x) (SMulHomClass.toFunLike.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (SMulZeroClass.toSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribSMul.toSMulZeroClass.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribMulAction.toDistribSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (SMulZeroClass.toSMul.{u3, u1} K U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u3, u1} K U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u3, u1} K U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u1, max u1 u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12 (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (AlgHom.algHomClass.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12))))) (Polynomial.aeval.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12 y) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) _inst_11))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) _x) (SMulHomClass.toFunLike.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (SMulZeroClass.toSMul.{u4, u1} R U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u4, u1} R U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u4, u1} R U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u1, max u1 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13 (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (AlgHom.algHomClass.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13))))) (Polynomial.aeval.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13 y) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) _inst_11)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTowerₓ'. -/
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
@@ -164,10 +146,7 @@ theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field
variable {A x}
/- warning: minpoly.eq_of_irreducible_of_monic -> minpoly.eq_of_irreducible_of_monic is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
-but is expected to have type
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Polynomial.Monic.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monicₓ'. -/
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) (hp3 : p.Monic) : p = minpoly A x :=
@@ -178,10 +157,7 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monic
/- warning: minpoly.eq_of_irreducible -> minpoly.eq_of_irreducible is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) p (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Inv.inv.{u1} A (DivInvMonoid.toHasInv.{u1} A (DivisionRing.toDivInvMonoid.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) (Polynomial.leadingCoeff.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
-but is expected to have type
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p))) (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) p (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible minpoly.eq_of_irreducibleₓ'. -/
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
@@ -200,10 +176,7 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
/- warning: minpoly.eq_of_algebra_map_eq -> minpoly.eq_of_algebraMap_eq is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_4 : Field.{u1} K] [_inst_5 : CommRing.{u2} S] [_inst_6 : CommRing.{u3} T] [_inst_7 : Algebra.{u1, u2} K S (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))] [_inst_8 : Algebra.{u1, u3} K T (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_9 : Algebra.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} K S T (SMulZeroClass.toHasSmul.{u1, u2} K 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_5)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} K S (MulZeroClass.toHasZero.{u1} K (MulZeroOneClass.toMulZeroClass.{u1} K (MonoidWithZero.toMulZeroOneClass.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))))))) (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_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} K S (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)))) (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_5)))))))) (Module.toMulActionWithZero.{u1, u2} K S (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))))) (Algebra.toModule.{u1, u2} K S (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} S T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S T (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_5)))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S T (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} S T (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} K T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} K T (MulZeroClass.toHasZero.{u1} K (MulZeroOneClass.toMulZeroClass.{u1} K (MonoidWithZero.toMulZeroOneClass.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} K T (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} K T (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u1, u3} K T (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_8)))))], (Function.Injective.{succ u2, succ u3} S T (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (fun (_x : RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (algebraMap.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9))) -> (forall {x : S} {y : T}, (IsIntegral.{u1, u2} K S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) -> (Eq.{succ u3} T y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (fun (_x : RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (algebraMap.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9) x)) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4))))) (minpoly.{u1, u2} K S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) (minpoly.{u1, u3} K T (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u3} T _inst_6) _inst_8 y)))
-but is expected to have type
- forall {K : Type.{u3}} {S : Type.{u2}} {T : Type.{u1}} [_inst_4 : Field.{u3} K] [_inst_5 : CommRing.{u2} S] [_inst_6 : CommRing.{u1} T] [_inst_7 : Algebra.{u3, u2} K S (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))] [_inst_8 : Algebra.{u3, u1} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))] [_inst_9 : Algebra.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))] [_inst_10 : IsScalarTower.{u3, u2, u1} K S T (Algebra.toSMul.{u3, u2} K S (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) _inst_7) (Algebra.toSMul.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9) (Algebra.toSMul.{u3, u1} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_8)], (Function.Injective.{succ u2, succ u1} S T (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))) (RingHom.instRingHomClassRingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))))) (algebraMap.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9))) -> (forall {x : S} {y : T}, (IsIntegral.{u3, u2} K S (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) -> (Eq.{succ u1} T y (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))) (RingHom.instRingHomClassRingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))))) (algebraMap.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9) x)) -> (Eq.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4))))) (minpoly.{u3, u2} K S (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) (minpoly.{u3, u1} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u1} T _inst_6) _inst_8 y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eqₓ'. -/
/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
@@ -221,10 +194,7 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
/- warning: minpoly.add_algebra_map -> minpoly.add_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HAdd.hAdd.{u2, u2, u2} B B B (instHAdd.{u2} B (Distrib.toHasAdd.{u2} B (Ring.toDistrib.{u2} B (CommRing.toRing.{u2} B _inst_4)))) x (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))))
-but is expected to have type
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HAdd.hAdd.{u2, u2, u2} B ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) B (instHAdd.{u2} B (Distrib.toAdd.{u2} B (NonUnitalNonAssocSemiring.toDistrib.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_4))))))) x (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.add_algebra_map minpoly.add_algebraMapₓ'. -/
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
@@ -242,10 +212,7 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
#align minpoly.add_algebra_map minpoly.add_algebraMap
/- warning: minpoly.sub_algebra_map -> minpoly.sub_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HSub.hSub.{u2, u2, u2} B B B (instHSub.{u2} B (SubNegMonoid.toHasSub.{u2} B (AddGroup.toSubNegMonoid.{u2} B (AddGroupWithOne.toAddGroup.{u2} B (AddCommGroupWithOne.toAddGroupWithOne.{u2} B (Ring.toAddCommGroupWithOne.{u2} B (CommRing.toRing.{u2} B _inst_4))))))) x (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HAdd.hAdd.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHAdd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.add'.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))))
-but is expected to have type
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HSub.hSub.{u2, u2, u2} B ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) B (instHSub.{u2} B (Ring.toSub.{u2} B (CommRing.toRing.{u2} B _inst_4))) x (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HAdd.hAdd.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHAdd.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.add'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.sub_algebra_map minpoly.sub_algebraMapₓ'. -/
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
@@ -280,10 +247,7 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
-/
/- warning: minpoly.aux_inj_roots_of_min_poly -> minpoly.aux_inj_roots_of_min_poly is a dubious translation:
-lean 3 declaration is
- forall (F : Type.{u1}) (E : Type.{u2}) (K : Type.{u3}) [_inst_4 : Field.{u1} F] [_inst_5 : Ring.{u2} E] [_inst_6 : CommRing.{u3} K] [_inst_7 : IsDomain.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6))] [_inst_8 : Algebra.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5)] [_inst_9 : Algebra.{u1, u3} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6))] [_inst_10 : FiniteDimensional.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)], Function.Injective.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} F E K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) _inst_8 _inst_9) (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, 1} E (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (coeFn.{max 1 (succ u1) (succ u2), succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (fun (_x : Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) => (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) -> E) (FunLike.hasCoeToFun.{max 1 (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) => E) (Basis.funLike.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (FiniteDimensional.finBasis.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8) _inst_10)))), Subtype.{succ u3} K (fun (l : K) => Membership.Mem.{u3, u3} K (Multiset.{u3} K) (Multiset.hasMem.{u3} K) l (Polynomial.roots.{u3} K _inst_6 _inst_7 (Polynomial.map.{u1, u3} F K (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4))) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) (algebraMap.{u1, u3} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) _inst_9) (minpoly.{u1, u2} F E (EuclideanDomain.toCommRing.{u1} F (Field.toEuclideanDomain.{u1} F _inst_4)) _inst_5 _inst_8 (Subtype.val.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.range.{u2, 1} E (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (coeFn.{max 1 (succ u1) (succ u2), succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (fun (_x : Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) => (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) -> E) (FunLike.hasCoeToFun.{max 1 (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) => E) (Basis.funLike.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (FiniteDimensional.finBasis.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8) _inst_10)))) x)))))) (minpoly.rootsOfMinPolyPiType.{u1, u2, u3} F E K _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10)
-but is expected to have type
- forall (F : Type.{u1}) (E : Type.{u3}) (K : Type.{u2}) [_inst_4 : Field.{u1} F] [_inst_5 : Ring.{u3} E] [_inst_6 : CommRing.{u2} K] [_inst_7 : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6))] [_inst_8 : Algebra.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5)] [_inst_9 : Algebra.{u1, u2} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6))] [_inst_10 : FiniteDimensional.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)], Function.Injective.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (AlgHom.{u1, u3, u2} F E K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) _inst_8 _inst_9) (forall (x : Set.Elem.{u3} E (Set.range.{u3, 1} E (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (FunLike.coe.{max (succ u1) (succ u3), 1, succ u3} (Basis.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => E) _x) (Basis.funLike.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (FiniteDimensional.finBasis.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8) _inst_10)))), Subtype.{succ u2} K (fun (l : K) => Membership.mem.{u2, u2} K (Multiset.{u2} K) (Multiset.instMembershipMultiset.{u2} K) l (Polynomial.roots.{u2} K _inst_6 _inst_7 (Polynomial.map.{u1, u2} F K (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4))) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) (algebraMap.{u1, u2} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) _inst_9) (minpoly.{u1, u3} F E (EuclideanDomain.toCommRing.{u1} F (Field.toEuclideanDomain.{u1} F _inst_4)) _inst_5 _inst_8 (Subtype.val.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (Set.range.{u3, 1} E (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (FunLike.coe.{max (succ u1) (succ u3), 1, succ u3} (Basis.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => E) _x) (Basis.funLike.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (FiniteDimensional.finBasis.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8) _inst_10)))) x)))))) (minpoly.rootsOfMinPolyPiType.{u1, u3, u2} F E K _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10)
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.aux_inj_roots_of_min_poly minpoly.aux_inj_roots_of_min_polyₓ'. -/
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
@@ -311,10 +275,7 @@ end AlgHomFintype
variable (B) [Nontrivial B]
/- warning: minpoly.eq_X_sub_C -> minpoly.eq_X_sub_C is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B] (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3) a)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))
-but is expected to have type
- forall {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B] (a : A), Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3) a)) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) a) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (instHSub.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.sub.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)))) (Polynomial.X.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (Polynomial.C.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) a))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C minpoly.eq_X_sub_Cₓ'. -/
/-- If `B/K` is a nontrivial algebra over a field, and `x` is an element of `K`,
then the minimal polynomial of `algebra_map K B x` is `X - C x`. -/
@@ -323,10 +284,7 @@ theorem eq_X_sub_C (a : A) : minpoly A (algebraMap A B a) = X - C a :=
#align minpoly.eq_X_sub_C minpoly.eq_X_sub_C
/- warning: minpoly.eq_X_sub_C' -> minpoly.eq_X_sub_C' is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u1} A A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) a) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))
-but is expected to have type
- forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u1} A A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) a) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))
+<too large>
Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'ₓ'. -/
theorem eq_X_sub_C' (a : A) : minpoly A a = X - C a :=
eq_X_sub_C A a
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -43,7 +43,7 @@ variable [Ring B] [Algebra A B] (x : B)
lean 3 declaration is
forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))))) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p))
but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Ne.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.zero.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p))
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Ne.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.zero.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p))
Case conversion may be inaccurate. Consider using '#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zeroₓ'. -/
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
@@ -71,7 +71,7 @@ theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minp
lean 3 declaration is
forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (forall (q : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))), (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))), (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q))) -> (Eq.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x))
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))), (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q))) -> (Eq.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x))
Case conversion may be inaccurate. Consider using '#align minpoly.unique minpoly.uniqueₓ'. -/
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
@@ -94,7 +94,7 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
lean 3 declaration is
forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (semigroupDvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.commRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x) p)
but is expected to have type
- forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (Dvd.dvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (semigroupDvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commRing.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x) p)
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (Dvd.dvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (semigroupDvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commRing.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x) p)
Case conversion may be inaccurate. Consider using '#align minpoly.dvd minpoly.dvdₓ'. -/
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
@@ -149,7 +149,7 @@ theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [Co
lean 3 declaration is
forall (R : Type.{u1}) {K : Type.{u2}} {T : Type.{u3}} {U : Type.{u4}} [_inst_4 : CommRing.{u1} R] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u3} T] [_inst_7 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5)))] [_inst_8 : Algebra.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_9 : Algebra.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} R K T (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} K T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K T (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_5))))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K T (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} K T (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R T (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_4)))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R T (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R T (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9)))))] [_inst_11 : CommSemiring.{u4} U] [_inst_12 : Algebra.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_13 : Algebra.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_14 : IsScalarTower.{u1, u2, u4} R K U (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u4} K U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} K U (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_5))))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} K U (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u2, u4} K U (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u4} R U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R U (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_4)))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R U (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u1, u4} R U (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13)))))] (x : T) (y : U), (Eq.{succ u4} U (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (fun (_x : AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) => (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) -> U) ([anonymous].{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (Polynomial.aeval.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12 y) (minpoly.{u2, u3} K T (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u3} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))))) -> (Eq.{succ u4} U (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (fun (_x : AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) -> U) ([anonymous].{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (Polynomial.aeval.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13 y) (minpoly.{u1, u3} R T _inst_4 (CommRing.toRing.{u3} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))))))))
but is expected to have type
- forall (R : Type.{u4}) {K : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_4 : CommRing.{u4} R] [_inst_5 : Field.{u3} K] [_inst_6 : CommRing.{u2} T] [_inst_7 : Algebra.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))] [_inst_8 : Algebra.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_9 : Algebra.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_10 : IsScalarTower.{u4, u3, u2} R K T (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_8) (Algebra.toSMul.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_9)] [_inst_11 : CommSemiring.{u1} U] [_inst_12 : Algebra.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_13 : Algebra.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_14 : IsScalarTower.{u4, u3, u1} R K U (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12) (Algebra.toSMul.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)] (x : T) (y : U), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) _x) (SMulHomClass.toFunLike.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (SMulZeroClass.toSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribSMul.toSMulZeroClass.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribMulAction.toDistribSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (SMulZeroClass.toSMul.{u3, u1} K U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u3, u1} K U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u3, u1} K U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u1, max u1 u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12 (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (AlgHom.algHomClass.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12))))) (Polynomial.aeval.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12 y) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) _inst_11))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) _x) (SMulHomClass.toFunLike.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (SMulZeroClass.toSMul.{u4, u1} R U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u4, u1} R U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u4, u1} R U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u1, max u1 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13 (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (AlgHom.algHomClass.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13))))) (Polynomial.aeval.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13 y) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) _inst_11)))))
+ forall (R : Type.{u4}) {K : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_4 : CommRing.{u4} R] [_inst_5 : Field.{u3} K] [_inst_6 : CommRing.{u2} T] [_inst_7 : Algebra.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))] [_inst_8 : Algebra.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_9 : Algebra.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_10 : IsScalarTower.{u4, u3, u2} R K T (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_8) (Algebra.toSMul.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_9)] [_inst_11 : CommSemiring.{u1} U] [_inst_12 : Algebra.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_13 : Algebra.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_14 : IsScalarTower.{u4, u3, u1} R K U (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12) (Algebra.toSMul.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)] (x : T) (y : U), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) _x) (SMulHomClass.toFunLike.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (SMulZeroClass.toSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribSMul.toSMulZeroClass.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribMulAction.toDistribSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (SMulZeroClass.toSMul.{u3, u1} K U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u3, u1} K U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u3, u1} K U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u1, max u1 u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12 (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (AlgHom.algHomClass.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12))))) (Polynomial.aeval.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12 y) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) _inst_11))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) _x) (SMulHomClass.toFunLike.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (SMulZeroClass.toSMul.{u4, u1} R U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u4, u1} R U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u4, u1} R U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u1, max u1 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13 (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (AlgHom.algHomClass.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13))))) (Polynomial.aeval.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13 y) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) _inst_11)))))
Case conversion may be inaccurate. Consider using '#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTowerₓ'. -/
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
@@ -167,7 +167,7 @@ variable {A x}
lean 3 declaration is
forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
but is expected to have type
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Polynomial.Monic.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Polynomial.Monic.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monicₓ'. -/
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) (hp3 : p.Monic) : p = minpoly A x :=
@@ -181,7 +181,7 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
lean 3 declaration is
forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) p (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Inv.inv.{u1} A (DivInvMonoid.toHasInv.{u1} A (DivisionRing.toDivInvMonoid.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) (Polynomial.leadingCoeff.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
but is expected to have type
- forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p))) (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) p (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p))) (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) p (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible minpoly.eq_of_irreducibleₓ'. -/
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
! This file was ported from Lean 3 source module field_theory.minpoly.field
-! leanprover-community/mathlib commit cbdf7b565832144d024caa5a550117c6df0204a5
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.RingTheory.Algebraic
/-!
# Minimal polynomials on an algebra over a field
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file specializes the theory of minpoly to the setting of field extensions
and derives some well-known properties, amongst which the fact that minimal polynomials
are irreducible, and uniquely determined by their defining property.
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -36,6 +36,12 @@ section Ring
variable [Ring B] [Algebra A B] (x : B)
+/- warning: minpoly.degree_le_of_ne_zero -> minpoly.degree_le_of_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))))) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p))
+but is expected to have type
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Ne.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.zero.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x)) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p))
+Case conversion may be inaccurate. Consider using '#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zeroₓ'. -/
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
the assumptions on `A` in exchange for stronger assumptions on `B`. -/
@@ -48,10 +54,22 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
+/- warning: minpoly.ne_zero_of_finite_field_extension -> minpoly.ne_zero_of_finite_field_extension is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (e : B) [_inst_4 : FiniteDimensional.{u1, u2} A B (Field.toDivisionRing.{u1} A _inst_1) (NonUnitalNonAssocRing.toAddCommGroup.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)], Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 e) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))))
+but is expected to have type
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (e : B) [_inst_4 : FiniteDimensional.{u2, u1} A B (Field.toDivisionRing.{u2} A _inst_1) (Ring.toAddCommGroup.{u1} B _inst_2) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)], Ne.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 e) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extensionₓ'. -/
theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
minpoly.ne_zero <| isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
+/- warning: minpoly.unique -> minpoly.unique is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (forall (q : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))), (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toHasLe.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) q))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+but is expected to have type
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))), (Polynomial.Monic.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) q) _inst_2)))))) -> (LE.le.{0} (WithBot.{0} Nat) (Preorder.toLE.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) p) (Polynomial.degree.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) q))) -> (Eq.{succ u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) p (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.unique minpoly.uniqueₓ'. -/
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
is equal to the minimal polynomial of `x`. See also `minpoly.gcd_unique` which relaxes the
@@ -69,6 +87,12 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
· exact le_antisymm (min A x pmonic hp) (pmin (minpoly A x) (monic hx) (aeval A x))
#align minpoly.unique minpoly.unique
+/- warning: minpoly.dvd -> minpoly.dvd is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (semigroupDvd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.commRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x) p)
+but is expected to have type
+ forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (SMulZeroClass.toSMul.{u2, u1} A B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u2, u1} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (Algebra.toModule.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Algebra.id.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) => B) p) _inst_2)))))) -> (Dvd.dvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (semigroupDvd.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commRing.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 x) p)
+Case conversion may be inaccurate. Consider using '#align minpoly.dvd minpoly.dvdₓ'. -/
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
assumptions on `B`. -/
@@ -88,6 +112,12 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p :=
simpa using hp
#align minpoly.dvd minpoly.dvd
+/- warning: minpoly.dvd_map_of_is_scalar_tower -> minpoly.dvd_map_of_isScalarTower is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) (K : Type.{u2}) {R : Type.{u3}} [_inst_4 : CommRing.{u1} A] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u3} R] [_inst_7 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5)))] [_inst_8 : Algebra.{u1, u3} A R (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6))] [_inst_9 : Algebra.{u2, u3} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} A K R (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_5))))))))) (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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} A K (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} A K (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} K 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} K R (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_5))))))) (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} K R (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (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} K R (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (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} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} A 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} A R (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_4)))))) (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} A R (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4))) (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} A R (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_4)) (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} A R (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_6)) _inst_8)))))] (x : R), Dvd.Dvd.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (semigroupDvd.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalRing.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommRing.toNonUnitalRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))))))) (minpoly.{u2, u3} K R (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u3} R _inst_6) _inst_9 x) (Polynomial.map.{u1, u2} A K (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_4)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7) (minpoly.{u1, u3} A R _inst_4 (CommRing.toRing.{u3} R _inst_6) _inst_8 x))
+but is expected to have type
+ forall (A : Type.{u3}) (K : Type.{u2}) {R : Type.{u1}} [_inst_4 : CommRing.{u3} A] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u1} R] [_inst_7 : Algebra.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))] [_inst_8 : Algebra.{u3, u1} A R (CommRing.toCommSemiring.{u3} A _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6))] [_inst_9 : Algebra.{u2, u1} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6))] [_inst_10 : IsScalarTower.{u3, u2, u1} A K R (Algebra.toSMul.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) _inst_7) (Algebra.toSMul.{u2, u1} K R (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6)) _inst_9) (Algebra.toSMul.{u3, u1} A R (CommRing.toCommSemiring.{u3} A _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_6)) _inst_8)] (x : R), Dvd.dvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (semigroupDvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5))))))))) (minpoly.{u2, u1} K R (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u1} R _inst_6) _inst_9 x) (Polynomial.map.{u3, u2} A K (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)))) (algebraMap.{u3, u2} A K (CommRing.toCommSemiring.{u3} A _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) _inst_7) (minpoly.{u3, u1} A R _inst_4 (CommRing.toRing.{u1} R _inst_6) _inst_8 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTowerₓ'. -/
theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) :=
@@ -96,6 +126,12 @@ theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field
rw [aeval_map_algebra_map, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
+/- warning: minpoly.dvd_map_of_is_scalar_tower' -> minpoly.dvd_map_of_is_scalar_tower' is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) {S : Type.{u2}} (K : Type.{u3}) (L : Type.{u4}) [_inst_4 : CommRing.{u1} R] [_inst_5 : CommRing.{u2} S] [_inst_6 : Field.{u3} K] [_inst_7 : CommRing.{u4} L] [_inst_8 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))] [_inst_9 : Algebra.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6)))] [_inst_10 : Algebra.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_11 : Algebra.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_12 : Algebra.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))] [_inst_13 : 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_6))))))))) (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_4)))))) (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_6))))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_6))))))))) (Module.toMulActionWithZero.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_6)))))) (Algebra.toModule.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6))) _inst_9))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_6))))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u3, u4} K L (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u3, u4} K L (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u3, u4} K L (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_6)) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_11))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_4)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_12)))))] [_inst_14 : 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_5)))))))) (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_4)))))) (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_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R S (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5)))))))) (Module.toMulActionWithZero.{u1, u2} R S (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))))) (Algebra.toModule.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5)) _inst_8))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_5)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} S L (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u2, u4} S L (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_10))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (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_4)))))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R L (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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 (CommRing.toRing.{u4} L _inst_7)))))))) (Module.toMulActionWithZero.{u1, u4} R L (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} L (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7))))) (Algebra.toModule.{u1, u4} R L (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_12)))))] (s : S), Dvd.Dvd.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (semigroupDvd.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (SemigroupWithZero.toSemigroup.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalSemiring.toSemigroupWithZero.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalRing.toNonUnitalSemiring.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (NonUnitalCommRing.toNonUnitalRing.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (CommRing.toNonUnitalCommRing.{u3} (Polynomial.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))) (Polynomial.commRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6))))))))) (minpoly.{u3, u4} K L (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6)) (CommRing.toRing.{u4} L _inst_7) _inst_11 (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_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) (fun (_x : RingHom.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) => S -> L) (RingHom.hasCoeToFun.{u2, u4} S L (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u4} L (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)))) (algebraMap.{u2, u4} S L (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u4} L (CommRing.toRing.{u4} L _inst_7)) _inst_10) s)) (Polynomial.map.{u1, u3} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_6)))) (algebraMap.{u1, u3} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} K (DivisionRing.toRing.{u3} K (Field.toDivisionRing.{u3} K _inst_6))) _inst_9) (minpoly.{u1, u2} R S _inst_4 (CommRing.toRing.{u2} S _inst_5) _inst_8 s))
+but is expected to have type
+ forall (R : Type.{u4}) {S : Type.{u3}} (K : Type.{u2}) (L : Type.{u1}) [_inst_4 : CommRing.{u4} R] [_inst_5 : CommRing.{u3} S] [_inst_6 : Field.{u2} K] [_inst_7 : CommRing.{u1} L] [_inst_8 : Algebra.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))] [_inst_9 : Algebra.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))] [_inst_10 : Algebra.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_11 : Algebra.{u2, u1} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_12 : Algebra.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))] [_inst_13 : IsScalarTower.{u4, u2, u1} R K L (Algebra.toSMul.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_9) (Algebra.toSMul.{u2, u1} K L (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_11) (Algebra.toSMul.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_12)] [_inst_14 : IsScalarTower.{u4, u3, u1} R S L (Algebra.toSMul.{u4, u3} R S (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5)) _inst_8) (Algebra.toSMul.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_10) (Algebra.toSMul.{u4, u1} R L (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_12)] (s : S), Dvd.dvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (semigroupDvd.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))) (Polynomial.commRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6))))))))) (minpoly.{u2, u1} K ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) s) (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) s) _inst_7) _inst_11 (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => L) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)))) S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))) (RingHom.instRingHomClassRingHom.{u3, u1} S L (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S (CommRing.toCommSemiring.{u3} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} L (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7))))))) (algebraMap.{u3, u1} S L (CommRing.toCommSemiring.{u3} S _inst_5) (CommSemiring.toSemiring.{u1} L (CommRing.toCommSemiring.{u1} L _inst_7)) _inst_10) s)) (Polynomial.map.{u4, u2} R K (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)))) (algebraMap.{u4, u2} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_9) (minpoly.{u4, u3} R S _inst_4 (CommRing.toRing.{u3} S _inst_5) _inst_8 s))
+Case conversion may be inaccurate. Consider using '#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'ₓ'. -/
theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
[CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
[Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
@@ -106,6 +142,12 @@ theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [Co
rw [← IsScalarTower.algebraMap_eq, ← IsScalarTower.algebraMap_eq]
#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'
+/- warning: minpoly.aeval_of_is_scalar_tower -> minpoly.aeval_of_isScalarTower is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) {K : Type.{u2}} {T : Type.{u3}} {U : Type.{u4}} [_inst_4 : CommRing.{u1} R] [_inst_5 : Field.{u2} K] [_inst_6 : CommRing.{u3} T] [_inst_7 : Algebra.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5)))] [_inst_8 : Algebra.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_9 : Algebra.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} R K T (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} K T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} K T (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_5))))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} K T (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} K T (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u2, u3} K T (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_8))))) (SMulZeroClass.toHasSmul.{u1, u3} R T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R T (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_4)))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R T (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} R T (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u1, u3} R T (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9)))))] [_inst_11 : CommSemiring.{u4} U] [_inst_12 : Algebra.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_13 : Algebra.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11)] [_inst_14 : IsScalarTower.{u1, u2, u4} R K U (SMulZeroClass.toHasSmul.{u1, u2} R 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_5))))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 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_4)))))) (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_5))))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R K (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (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_5))))))))) (Module.toMulActionWithZero.{u1, u2} R K (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (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_5)))))) (Algebra.toModule.{u1, u2} R K (CommRing.toCommSemiring.{u1} R _inst_4) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_5))) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u4} K U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u2, u4} K U (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_5))))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u2, u4} K U (Semiring.toMonoidWithZero.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u2, u4} K U (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12))))) (SMulZeroClass.toHasSmul.{u1, u4} R U (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (SMulWithZero.toSmulZeroClass.{u1, u4} R U (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_4)))))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (MulActionWithZero.toSMulWithZero.{u1, u4} R U (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (AddZeroClass.toHasZero.{u4} U (AddMonoid.toAddZeroClass.{u4} U (AddCommMonoid.toAddMonoid.{u4} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))) (Module.toMulActionWithZero.{u1, u4} R U (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))) (Algebra.toModule.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13)))))] (x : T) (y : U), (Eq.{succ u4} U (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (fun (_x : AlgHom.{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) => (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) -> U) ([anonymous].{u2, u2, u4} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)))) _inst_12) (Polynomial.aeval.{u2, u4} K U (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_5)) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_12 y) (minpoly.{u2, u3} K T (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_5)) (CommRing.toRing.{u3} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11))))))))) -> (Eq.{succ u4} U (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (fun (_x : AlgHom.{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) -> U) ([anonymous].{u1, u1, u4} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) U (CommRing.toCommSemiring.{u1} R _inst_4) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) (CommSemiring.toSemiring.{u4} U _inst_11) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_4))) _inst_13) (Polynomial.aeval.{u1, u4} R U (CommRing.toCommSemiring.{u1} R _inst_4) (CommSemiring.toSemiring.{u4} U _inst_11) _inst_13 y) (minpoly.{u1, u3} R T _inst_4 (CommRing.toRing.{u3} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u4} U 0 (OfNat.mk.{u4} U 0 (Zero.zero.{u4} U (MulZeroClass.toHasZero.{u4} U (NonUnitalNonAssocSemiring.toMulZeroClass.{u4} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} U (Semiring.toNonAssocSemiring.{u4} U (CommSemiring.toSemiring.{u4} U _inst_11)))))))))
+but is expected to have type
+ forall (R : Type.{u4}) {K : Type.{u3}} {T : Type.{u2}} {U : Type.{u1}} [_inst_4 : CommRing.{u4} R] [_inst_5 : Field.{u3} K] [_inst_6 : CommRing.{u2} T] [_inst_7 : Algebra.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))] [_inst_8 : Algebra.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_9 : Algebra.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6))] [_inst_10 : IsScalarTower.{u4, u3, u2} R K T (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u2} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_8) (Algebra.toSMul.{u4, u2} R T (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u2} T (CommRing.toCommSemiring.{u2} T _inst_6)) _inst_9)] [_inst_11 : CommSemiring.{u1} U] [_inst_12 : Algebra.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_13 : Algebra.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11)] [_inst_14 : IsScalarTower.{u4, u3, u1} R K U (Algebra.toSMul.{u4, u3} R K (CommRing.toCommSemiring.{u4} R _inst_4) (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) _inst_7) (Algebra.toSMul.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12) (Algebra.toSMul.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)] (x : T) (y : U), (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) _x) (SMulHomClass.toFunLike.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (SMulZeroClass.toSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribSMul.toSMulZeroClass.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (DistribMulAction.toDistribSMul.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))))) (SMulZeroClass.toSMul.{u3, u1} K U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u3, u1} K U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u3, u1} K U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u3, u3, u1} (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (MonoidWithZero.toMonoid.{u3} K (Semiring.toMonoidWithZero.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))))))) (Algebra.toModule.{u3, u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))))) (Module.toDistribMulAction.{u3, u1} K U (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u3, u1, max u1 u3} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12 (AlgHom.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12) (AlgHom.algHomClass.{u3, u3, u1} K (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u3, u3} K K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5))) (Algebra.id.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) _inst_12))))) (Polynomial.aeval.{u3, u1} K U (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_12 y) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_5)))) => U) (minpoly.{u3, u2} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_5)) (CommRing.toRing.{u2} T _inst_6) _inst_8 x)) _inst_11))))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (FunLike.coe.{max (succ u1) (succ u4), succ u4, succ u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (fun (_x : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) _x) (SMulHomClass.toFunLike.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (SMulZeroClass.toSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toZero.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribSMul.toSMulZeroClass.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddMonoid.toAddZeroClass.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (DistribMulAction.toDistribSMul.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))))) (SMulZeroClass.toSMul.{u4, u1} R U (AddMonoid.toZero.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribSMul.toSMulZeroClass.{u4, u1} R U (AddMonoid.toAddZeroClass.{u1} U (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))))) (DistribMulAction.toDistribSMul.{u4, u1} R U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (AddCommMonoid.toAddMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))))) (AddCommMonoid.toAddMonoid.{u1} U (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u4, u4, u4, u1} (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11))) (Module.toDistribMulAction.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Semiring.toNonAssocSemiring.{u4} (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)))))) (Algebra.toModule.{u4, u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))))) (Module.toDistribMulAction.{u4, u1} R U (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} U (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} U (Semiring.toNonAssocSemiring.{u1} U (CommSemiring.toSemiring.{u1} U _inst_11)))) (Algebra.toModule.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u4, u1, max u1 u4} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13 (AlgHom.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13) (AlgHom.algHomClass.{u4, u4, u1} R (Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) U (CommRing.toCommSemiring.{u4} R _inst_4) (Polynomial.semiring.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) (CommSemiring.toSemiring.{u1} U _inst_11) (Polynomial.algebraOfAlgebra.{u4, u4} R R (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4)) (Algebra.id.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) _inst_13))))) (Polynomial.aeval.{u4, u1} R U (CommRing.toCommSemiring.{u4} R _inst_4) (CommSemiring.toSemiring.{u1} U _inst_11) _inst_13 y) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_4))) => U) (minpoly.{u4, u2} R T _inst_4 (CommRing.toRing.{u2} T _inst_6) _inst_9 x)) _inst_11)))))
+Case conversion may be inaccurate. Consider using '#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTowerₓ'. -/
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
[Algebra R K] [Algebra K T] [Algebra R T] [IsScalarTower R K T] [CommSemiring U] [Algebra K U]
@@ -118,6 +160,12 @@ theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field
variable {A x}
+/- warning: minpoly.eq_of_irreducible_of_monic -> minpoly.eq_of_irreducible_of_monic is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+but is expected to have type
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Polynomial.Monic.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) p (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monicₓ'. -/
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) (hp3 : p.Monic) : p = minpoly A x :=
let ⟨q, hq⟩ := dvd A x hp2
@@ -126,6 +174,12 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
associated_one_iff_isUnit.2 <| (hp1.isUnit_or_isUnit hq).resolve_left <| not_isUnit A x
#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monic
+/- warning: minpoly.eq_of_irreducible -> minpoly.eq_of_irreducible is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.ring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) p) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) p (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Inv.inv.{u1} A (DivInvMonoid.toHasInv.{u1} A (DivisionRing.toDivInvMonoid.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) (Polynomial.leadingCoeff.{u1} A (Ring.toSemiring.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+but is expected to have type
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B] {p : Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))}, (Irreducible.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) p) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (fun (_x : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (SMulZeroClass.toSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (SMulZeroClass.toSMul.{u1, u2} A B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, u2} A B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} A B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (Module.toDistribMulAction.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (Algebra.toModule.{u1, u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (Module.toDistribMulAction.{u1, u2} A B (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3 (AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) (Algebra.id.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _inst_3))))) (Polynomial.aeval.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) p) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (MonoidWithZero.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Semiring.toMonoidWithZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) (Ring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) => B) p) _inst_2)))))) -> (Eq.{succ u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p))) (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (instHMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.mul'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) p (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Inv.inv.{u1} A (Field.toInv.{u1} A _inst_1) (Polynomial.leadingCoeff.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))) p)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_irreducible minpoly.eq_of_irreducibleₓ'. -/
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
(hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
by
@@ -142,6 +196,12 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
· rwa [Polynomial.Monic, leading_coeff_mul, leading_coeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
+/- warning: minpoly.eq_of_algebra_map_eq -> minpoly.eq_of_algebraMap_eq is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} {S : Type.{u2}} {T : Type.{u3}} [_inst_4 : Field.{u1} K] [_inst_5 : CommRing.{u2} S] [_inst_6 : CommRing.{u3} T] [_inst_7 : Algebra.{u1, u2} K S (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))] [_inst_8 : Algebra.{u1, u3} K T (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_9 : Algebra.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))] [_inst_10 : IsScalarTower.{u1, u2, u3} K S T (SMulZeroClass.toHasSmul.{u1, u2} K 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_5)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} K S (MulZeroClass.toHasZero.{u1} K (MulZeroOneClass.toMulZeroClass.{u1} K (MonoidWithZero.toMulZeroOneClass.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))))))) (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_5)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} K S (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)))) (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_5)))))))) (Module.toMulActionWithZero.{u1, u2} K S (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5))))) (Algebra.toModule.{u1, u2} K S (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_5)) _inst_7))))) (SMulZeroClass.toHasSmul.{u2, u3} S T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} S T (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_5)))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S T (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u2, u3} S T (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9))))) (SMulZeroClass.toHasSmul.{u1, u3} K T (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} K T (MulZeroClass.toHasZero.{u1} K (MulZeroOneClass.toMulZeroClass.{u1} K (MonoidWithZero.toMulZeroOneClass.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))))))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} K T (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)))) (AddZeroClass.toHasZero.{u3} T (AddMonoid.toAddZeroClass.{u3} T (AddCommMonoid.toAddMonoid.{u3} T (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))))))) (Module.toMulActionWithZero.{u1, u3} K T (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} T (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6))))) (Algebra.toModule.{u1, u3} K T (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_4)) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_8)))))], (Function.Injective.{succ u2, succ u3} S T (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (fun (_x : RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (algebraMap.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9))) -> (forall {x : S} {y : T}, (IsIntegral.{u1, u2} K S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) -> (Eq.{succ u3} T y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (fun (_x : RingHom.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) => S -> T) (RingHom.hasCoeToFun.{u2, u3} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u3} T (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)))) (algebraMap.{u2, u3} S T (CommRing.toCommSemiring.{u2} S _inst_5) (Ring.toSemiring.{u3} T (CommRing.toRing.{u3} T _inst_6)) _inst_9) x)) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4))))) (minpoly.{u1, u2} K S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) (minpoly.{u1, u3} K T (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_4)) (CommRing.toRing.{u3} T _inst_6) _inst_8 y)))
+but is expected to have type
+ forall {K : Type.{u3}} {S : Type.{u2}} {T : Type.{u1}} [_inst_4 : Field.{u3} K] [_inst_5 : CommRing.{u2} S] [_inst_6 : CommRing.{u1} T] [_inst_7 : Algebra.{u3, u2} K S (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))] [_inst_8 : Algebra.{u3, u1} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))] [_inst_9 : Algebra.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))] [_inst_10 : IsScalarTower.{u3, u2, u1} K S T (Algebra.toSMul.{u3, u2} K S (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)) _inst_7) (Algebra.toSMul.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9) (Algebra.toSMul.{u3, u1} K T (Semifield.toCommSemiring.{u3} K (Field.toSemifield.{u3} K _inst_4)) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_8)], (Function.Injective.{succ u2, succ u1} S T (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))) (RingHom.instRingHomClassRingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))))) (algebraMap.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9))) -> (forall {x : S} {y : T}, (IsIntegral.{u3, u2} K S (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) -> (Eq.{succ u1} T y (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => T) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} T (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)))) S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))) (RingHom.instRingHomClassRingHom.{u2, u1} S T (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_5))) (Semiring.toNonAssocSemiring.{u1} T (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6))))))) (algebraMap.{u2, u1} S T (CommRing.toCommSemiring.{u2} S _inst_5) (CommSemiring.toSemiring.{u1} T (CommRing.toCommSemiring.{u1} T _inst_6)) _inst_9) x)) -> (Eq.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4))))) (minpoly.{u3, u2} K S (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u2} S _inst_5) _inst_7 x) (minpoly.{u3, u1} K T (EuclideanDomain.toCommRing.{u3} K (Field.toEuclideanDomain.{u3} K _inst_4)) (CommRing.toRing.{u1} T _inst_6) _inst_8 y)))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eqₓ'. -/
/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
We take `h : y = algebra_map L T x` as an argument because `rw h` typically fails
@@ -157,6 +217,12 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
(h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
+/- warning: minpoly.add_algebra_map -> minpoly.add_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HAdd.hAdd.{u2, u2, u2} B B B (instHAdd.{u2} B (Distrib.toHasAdd.{u2} B (Ring.toDistrib.{u2} B (CommRing.toRing.{u2} B _inst_4)))) x (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))))
+but is expected to have type
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HAdd.hAdd.{u2, u2, u2} B ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) B (instHAdd.{u2} B (Distrib.toAdd.{u2} B (NonUnitalNonAssocSemiring.toDistrib.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_4))))))) x (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))))
+Case conversion may be inaccurate. Consider using '#align minpoly.add_algebra_map minpoly.add_algebraMapₓ'. -/
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
by
@@ -172,6 +238,12 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
nat_degree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
+/- warning: minpoly.sub_algebra_map -> minpoly.sub_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HSub.hSub.{u2, u2, u2} B B B (instHSub.{u2} B (SubNegMonoid.toHasSub.{u2} B (AddGroup.toSubNegMonoid.{u2} B (AddGroupWithOne.toAddGroup.{u2} B (AddCommGroupWithOne.toAddGroupWithOne.{u2} B (Ring.toAddCommGroupWithOne.{u2} B (CommRing.toRing.{u2} B _inst_4))))))) x (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HAdd.hAdd.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHAdd.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.add'.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))))
+but is expected to have type
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] {B : Type.{u2}} [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) -> (forall (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 (HSub.hSub.{u2, u2, u2} B ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) B (instHSub.{u2} B (Ring.toSub.{u2} B (CommRing.toRing.{u2} B _inst_4))) x (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)))) A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))) (RingHom.instRingHomClassRingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))))))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5) a))) (Polynomial.comp.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (CommRing.toRing.{u2} B _inst_4) _inst_5 x) (HAdd.hAdd.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHAdd.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.add'.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))))
+Case conversion may be inaccurate. Consider using '#align minpoly.sub_algebra_map minpoly.sub_algebraMapₓ'. -/
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
simpa [sub_eq_add_neg] using add_algebra_map hx (-a)
@@ -179,16 +251,19 @@ theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
section AlgHomFintype
+#print minpoly.Fintype.subtypeProd /-
/-- A technical finiteness result. -/
noncomputable def Fintype.subtypeProd {E : Type _} {X : Set E} (hX : X.Finite) {L : Type _}
(F : E → Multiset L) : Fintype (∀ x : X, { l : L // l ∈ F x }) :=
let hX := Finite.fintype hX
Pi.fintype
#align minpoly.fintype.subtype_prod minpoly.Fintype.subtypeProd
+-/
variable (F E K : Type _) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F E] [Algebra F K]
[FiniteDimensional F E]
+#print minpoly.rootsOfMinPolyPiType /-
-- Marked as `noncomputable!` since this definition takes multiple seconds to compile,
-- and isn't very computable in practice (since neither `finrank` nor `fin_basis` are).
/-- Function from Hom_K(E,L) to pi type Π (x : basis), roots of min poly of x -/
@@ -199,7 +274,14 @@ noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
rw [mem_roots_map (minpoly.ne_zero_of_finite_field_extension F x.val), Subtype.val_eq_coe, ←
aeval_def, aeval_alg_hom_apply, minpoly.aeval, map_zero]⟩
#align minpoly.roots_of_min_poly_pi_type minpoly.rootsOfMinPolyPiType
+-/
+/- warning: minpoly.aux_inj_roots_of_min_poly -> minpoly.aux_inj_roots_of_min_poly is a dubious translation:
+lean 3 declaration is
+ forall (F : Type.{u1}) (E : Type.{u2}) (K : Type.{u3}) [_inst_4 : Field.{u1} F] [_inst_5 : Ring.{u2} E] [_inst_6 : CommRing.{u3} K] [_inst_7 : IsDomain.{u3} K (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6))] [_inst_8 : Algebra.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5)] [_inst_9 : Algebra.{u1, u3} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6))] [_inst_10 : FiniteDimensional.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)], Function.Injective.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} F E K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) _inst_8 _inst_9) (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} E) Type.{u2} (Set.hasCoeToSort.{u2} E) (Set.range.{u2, 1} E (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (coeFn.{max 1 (succ u1) (succ u2), succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (fun (_x : Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) => (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) -> E) (FunLike.hasCoeToFun.{max 1 (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) => E) (Basis.funLike.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (FiniteDimensional.finBasis.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8) _inst_10)))), Subtype.{succ u3} K (fun (l : K) => Membership.Mem.{u3, u3} K (Multiset.{u3} K) (Multiset.hasMem.{u3} K) l (Polynomial.roots.{u3} K _inst_6 _inst_7 (Polynomial.map.{u1, u3} F K (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4))) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) (algebraMap.{u1, u3} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} K (CommRing.toRing.{u3} K _inst_6)) _inst_9) (minpoly.{u1, u2} F E (EuclideanDomain.toCommRing.{u1} F (Field.toEuclideanDomain.{u1} F _inst_4)) _inst_5 _inst_8 (Subtype.val.{succ u2} E (fun (x : E) => Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x (Set.range.{u2, 1} E (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (coeFn.{max 1 (succ u1) (succ u2), succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (fun (_x : Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) => (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) -> E) (FunLike.hasCoeToFun.{max 1 (succ u1) (succ u2), 1, succ u2} (Basis.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) => E) (Basis.funLike.{0, u1, u2} (Fin (FiniteDimensional.finrank.{u1, u2} F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) F E (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u2} E (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5)))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8))) (FiniteDimensional.finBasis.{u1, u2} F E (Field.toDivisionRing.{u1} F _inst_4) (NonUnitalNonAssocRing.toAddCommGroup.{u2} E (NonAssocRing.toNonUnitalNonAssocRing.{u2} E (Ring.toNonAssocRing.{u2} E _inst_5))) (Algebra.toModule.{u1, u2} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u2} E _inst_5) _inst_8) _inst_10)))) x)))))) (minpoly.rootsOfMinPolyPiType.{u1, u2, u3} F E K _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10)
+but is expected to have type
+ forall (F : Type.{u1}) (E : Type.{u3}) (K : Type.{u2}) [_inst_4 : Field.{u1} F] [_inst_5 : Ring.{u3} E] [_inst_6 : CommRing.{u2} K] [_inst_7 : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6))] [_inst_8 : Algebra.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5)] [_inst_9 : Algebra.{u1, u2} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6))] [_inst_10 : FiniteDimensional.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)], Function.Injective.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (AlgHom.{u1, u3, u2} F E K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) _inst_8 _inst_9) (forall (x : Set.Elem.{u3} E (Set.range.{u3, 1} E (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (FunLike.coe.{max (succ u1) (succ u3), 1, succ u3} (Basis.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => E) _x) (Basis.funLike.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (FiniteDimensional.finBasis.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8) _inst_10)))), Subtype.{succ u2} K (fun (l : K) => Membership.mem.{u2, u2} K (Multiset.{u2} K) (Multiset.instMembershipMultiset.{u2} K) l (Polynomial.roots.{u2} K _inst_6 _inst_7 (Polynomial.map.{u1, u2} F K (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4))) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) (algebraMap.{u1, u2} F K (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_6)) _inst_9) (minpoly.{u1, u3} F E (EuclideanDomain.toCommRing.{u1} F (Field.toEuclideanDomain.{u1} F _inst_4)) _inst_5 _inst_8 (Subtype.val.{succ u3} E (fun (x : E) => Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x (Set.range.{u3, 1} E (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (FunLike.coe.{max (succ u1) (succ u3), 1, succ u3} (Basis.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) (fun (_x : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => (fun (x._@.Mathlib.LinearAlgebra.Basis._hyg.548 : Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) => E) _x) (Basis.funLike.{0, u1, u3} (Fin (FiniteDimensional.finrank.{u1, u3} F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8))) F E (DivisionSemiring.toSemiring.{u1} F (DivisionRing.toDivisionSemiring.{u1} F (Field.toDivisionRing.{u1} F _inst_4))) (AddCommGroup.toAddCommMonoid.{u3} E (Ring.toAddCommGroup.{u3} E _inst_5)) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8)) (FiniteDimensional.finBasis.{u1, u3} F E (Field.toDivisionRing.{u1} F _inst_4) (Ring.toAddCommGroup.{u3} E _inst_5) (Algebra.toModule.{u1, u3} F E (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_4)) (Ring.toSemiring.{u3} E _inst_5) _inst_8) _inst_10)))) x)))))) (minpoly.rootsOfMinPolyPiType.{u1, u3, u2} F E K _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10)
+Case conversion may be inaccurate. Consider using '#align minpoly.aux_inj_roots_of_min_poly minpoly.aux_inj_roots_of_min_polyₓ'. -/
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
by
intro f g h
@@ -210,6 +292,7 @@ theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) :=
subtype.ext_iff.mp (h ⟨e, he⟩)
#align minpoly.aux_inj_roots_of_min_poly minpoly.aux_inj_roots_of_min_poly
+#print minpoly.AlgHom.fintype /-
/-- Given field extensions `E/F` and `K/F`, with `E/F` finite, there are finitely many `F`-algebra
homomorphisms `E →ₐ[K] K`. -/
noncomputable instance AlgHom.fintype : Fintype (E →ₐ[F] K) :=
@@ -218,29 +301,54 @@ noncomputable instance AlgHom.fintype : Fintype (E →ₐ[F] K) :=
((minpoly F e).map (algebraMap F K)).roots)
_ (aux_inj_roots_of_min_poly F E K)
#align minpoly.alg_hom.fintype minpoly.AlgHom.fintype
+-/
end AlgHomFintype
variable (B) [Nontrivial B]
+/- warning: minpoly.eq_X_sub_C -> minpoly.eq_X_sub_C is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B] (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_3) a)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))
+but is expected to have type
+ forall {A : Type.{u2}} (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B] (a : A), Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) a) (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_3) a)) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) a) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (instHSub.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.sub.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)))) (Polynomial.X.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u2, u2} A (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Polynomial.semiring.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))))))) (Polynomial.C.{u2} A (DivisionSemiring.toSemiring.{u2} A (Semifield.toDivisionSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) a))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C minpoly.eq_X_sub_Cₓ'. -/
/-- If `B/K` is a nontrivial algebra over a field, and `x` is an element of `K`,
then the minimal polynomial of `algebra_map K B x` is `X - C x`. -/
-theorem eq_x_sub_c (a : A) : minpoly A (algebraMap A B a) = X - C a :=
- eq_x_sub_c_of_algebraMap_inj a (algebraMap A B).Injective
-#align minpoly.eq_X_sub_C minpoly.eq_x_sub_c
-
-theorem eq_x_sub_C' (a : A) : minpoly A a = X - C a :=
- eq_x_sub_c A a
-#align minpoly.eq_X_sub_C' minpoly.eq_x_sub_C'
+theorem eq_X_sub_C (a : A) : minpoly A (algebraMap A B a) = X - C a :=
+ eq_X_sub_C_of_algebraMap_inj a (algebraMap A B).Injective
+#align minpoly.eq_X_sub_C minpoly.eq_X_sub_C
+
+/- warning: minpoly.eq_X_sub_C' -> minpoly.eq_X_sub_C' is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] (a : A), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u1} A A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) a) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) a))
+but is expected to have type
+ forall {A : Type.{u1}} [_inst_1 : Field.{u1} A] (a : A), Eq.{succ u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u1} A A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) a) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a) (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))))) A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} A (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Polynomial.semiring.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1))))))))) (Polynomial.C.{u1} A (DivisionSemiring.toSemiring.{u1} A (Semifield.toDivisionSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) a))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'ₓ'. -/
+theorem eq_X_sub_C' (a : A) : minpoly A a = X - C a :=
+ eq_X_sub_C A a
+#align minpoly.eq_X_sub_C' minpoly.eq_X_sub_C'
variable (A)
+/- warning: minpoly.zero -> minpoly.zero is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B], Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))
+but is expected to have type
+ forall (A : Type.{u2}) (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B], Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align minpoly.zero minpoly.zeroₓ'. -/
/-- The minimal polynomial of `0` is `X`. -/
@[simp]
theorem zero : minpoly A (0 : B) = X := by
simpa only [add_zero, C_0, sub_eq_add_neg, neg_zero, RingHom.map_zero] using eq_X_sub_C B (0 : A)
#align minpoly.zero minpoly.zero
+/- warning: minpoly.one -> minpoly.one is a dubious translation:
+lean 3 declaration is
+ forall (A : Type.{u1}) (B : Type.{u2}) [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Nontrivial.{u2} B], Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u2} B 1 (OfNat.mk.{u2} B 1 (One.one.{u2} B (AddMonoidWithOne.toOne.{u2} B (AddGroupWithOne.toAddMonoidWithOne.{u2} B (AddCommGroupWithOne.toAddGroupWithOne.{u2} B (Ring.toAddCommGroupWithOne.{u2} B _inst_2)))))))) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.sub.{u1} A (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 1 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) 1 (One.one.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.hasOne.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))))))))
+but is expected to have type
+ forall (A : Type.{u2}) (B : Type.{u1}) [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Nontrivial.{u1} B], Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_3 (OfNat.ofNat.{u1} B 1 (One.toOfNat1.{u1} B (Semiring.toOne.{u1} B (Ring.toSemiring.{u1} B _inst_2))))) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (instHSub.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.sub.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.one.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.one minpoly.oneₓ'. -/
/-- The minimal polynomial of `1` is `X - 1`. -/
@[simp]
theorem one : minpoly A (1 : B) = X - 1 := by
@@ -255,6 +363,12 @@ variable [Ring B] [IsDomain B] [Algebra A B]
variable {A} {x : B}
+/- warning: minpoly.prime -> minpoly.prime is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Prime.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (CommSemiring.toCommMonoidWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1))))) (Polynomial.commSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x))
+but is expected to have type
+ forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Prime.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (IsDomain.toCancelCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1))))) (Polynomial.commSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u2} A (DivisionRing.toRing.{u2} A (Field.toDivisionRing.{u2} A _inst_1)) (Field.isDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.prime minpoly.primeₓ'. -/
/-- A minimal polynomial is prime. -/
theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
by
@@ -265,6 +379,12 @@ theorem prime (hx : IsIntegral A x) : Prime (minpoly A x) :=
exact Or.imp (dvd A x) (dvd A x) this
#align minpoly.prime minpoly.prime
+/- warning: minpoly.root -> minpoly.root is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (forall {y : A}, (Polynomial.IsRoot.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) y) -> (Eq.{succ u2} B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (fun (_x : RingHom.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2) _inst_4) y) x))
+but is expected to have type
+ forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (forall {y : A}, (Polynomial.IsRoot.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) y) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2) _inst_4) y) x))
+Case conversion may be inaccurate. Consider using '#align minpoly.root minpoly.rootₓ'. -/
/-- If `L/K` is a field extension and an element `y` of `K` is a root of the minimal polynomial
of an element `x ∈ L`, then `y` maps to `x` under the field embedding. -/
theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y) :
@@ -279,6 +399,12 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
#align minpoly.root minpoly.root
+/- warning: minpoly.coeff_zero_eq_zero -> minpoly.coeff_zero_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Iff (Eq.{succ u1} A (Polynomial.coeff.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (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 (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1))))))))))) (Eq.{succ u2} B x (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))))
+but is expected to have type
+ forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Iff (Eq.{succ u2} A (Polynomial.coeff.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CommGroupWithZero.toCommMonoidWithZero.{u2} A (Semifield.toCommGroupWithZero.{u2} A (Field.toSemifield.{u2} A _inst_1))))))) (Eq.{succ u1} B x (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zeroₓ'. -/
/-- The constant coefficient of the minimal polynomial of `x` is `0` if and only if `x = 0`. -/
@[simp]
theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔ x = 0 :=
@@ -292,6 +418,12 @@ theorem coeff_zero_eq_zero (hx : IsIntegral A x) : coeff (minpoly A x) 0 = 0 ↔
simp
#align minpoly.coeff_zero_eq_zero minpoly.coeff_zero_eq_zero
+/- warning: minpoly.coeff_zero_ne_zero -> minpoly.coeff_zero_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : Field.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)] [_inst_4 : Algebra.{u1, u2} A B (Semifield.toCommSemiring.{u1} A (Field.toSemifield.{u1} A _inst_1)) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) -> (Ne.{succ u2} B x (OfNat.ofNat.{u2} B 0 (OfNat.mk.{u2} B 0 (Zero.zero.{u2} B (MulZeroClass.toHasZero.{u2} B (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} B (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonUnitalNonAssocRing.{u2} B (Ring.toNonAssocRing.{u2} B _inst_2))))))))) -> (Ne.{succ u1} A (Polynomial.coeff.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)))) (minpoly.{u1, u2} A B (EuclideanDomain.toCommRing.{u1} A (Field.toEuclideanDomain.{u1} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (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 (DivisionRing.toRing.{u1} A (Field.toDivisionRing.{u1} A _inst_1)))))))))))
+but is expected to have type
+ forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : Field.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)] [_inst_4 : Algebra.{u2, u1} A B (Semifield.toCommSemiring.{u2} A (Field.toSemifield.{u2} A _inst_1)) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) -> (Ne.{succ u1} B x (OfNat.ofNat.{u1} B 0 (Zero.toOfNat0.{u1} B (MonoidWithZero.toZero.{u1} B (Semiring.toMonoidWithZero.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) -> (Ne.{succ u2} A (Polynomial.coeff.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)))) (minpoly.{u2, u1} A B (EuclideanDomain.toCommRing.{u2} A (Field.toEuclideanDomain.{u2} A _inst_1)) _inst_2 _inst_4 x) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (CommMonoidWithZero.toZero.{u2} A (CommGroupWithZero.toCommMonoidWithZero.{u2} A (Semifield.toCommGroupWithZero.{u2} A (Field.toSemifield.{u2} A _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.coeff_zero_ne_zero minpoly.coeff_zero_ne_zeroₓ'. -/
/-- The minimal polynomial of a nonzero element has nonzero constant coefficient. -/
theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly A x) 0 ≠ 0 :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/57e09a1296bfb4330ddf6624f1028ba186117d82
@@ -160,12 +160,12 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
by
- refine' (minpoly.unique _ _ ((minpoly.monic hx).comp_x_sub_c _) _ fun q qmo hq => _).symm
+ refine' (minpoly.unique _ _ ((minpoly.monic hx).comp_X_sub_C _) _ fun q qmo hq => _).symm
· simp [aeval_comp]
· have : (Polynomial.aeval x) (q.comp (X + C a)) = 0 := by simpa [aeval_comp] using hq
have H := minpoly.min A x (qmo.comp_X_add_C _) this
rw [degree_eq_nat_degree qmo.ne_zero,
- degree_eq_nat_degree ((minpoly.monic hx).comp_x_sub_c _).NeZero, WithBot.coe_le_coe,
+ degree_eq_nat_degree ((minpoly.monic hx).comp_X_sub_C _).NeZero, WithBot.coe_le_coe,
nat_degree_comp, nat_degree_X_sub_C, mul_one]
rwa [degree_eq_nat_degree (minpoly.ne_zero hx),
degree_eq_nat_degree (qmo.comp_X_add_C _).NeZero, WithBot.coe_le_coe, nat_degree_comp,
@@ -273,7 +273,7 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
have key : minpoly A x = X - C y :=
eq_of_monic_of_associated (monic hx) (monic_X_sub_C y)
(associated_of_dvd_dvd
- ((irreducible_x_sub_c y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
+ ((irreducible_X_sub_C y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
(dvd_iff_isRoot.2 h))
have := aeval A x
rwa [key, AlgHom.map_sub, aeval_X, aeval_C, sub_eq_zero, eq_comm] at this
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -138,7 +138,7 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
rwa [← C_mul, mul_inv_cancel, C_1]⟩,
rfl⟩
hp1
- · rw [aeval_mul, hp2, zero_mul]
+ · rw [aeval_mul, hp2, MulZeroClass.zero_mul]
· rwa [Polynomial.Monic, leading_coeff_mul, leading_coeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
mathlib commit https://github.com/leanprover-community/mathlib/commit/21e3562c5e12d846c7def5eff8cdbc520d7d4936
@@ -271,7 +271,7 @@ theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y)
algebraMap A B y = x :=
by
have key : minpoly A x = X - C y :=
- eq_of_monic_of_associated (monic hx) (monic_x_sub_c y)
+ eq_of_monic_of_associated (monic hx) (monic_X_sub_C y)
(associated_of_dvd_dvd
((irreducible_x_sub_c y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
(dvd_iff_isRoot.2 h))
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -42,7 +42,7 @@ the assumptions on `A` in exchange for stronger assumptions on `B`. -/
theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x p = 0) :
degree (minpoly A x) ≤ degree p :=
calc
- degree (minpoly A x) ≤ degree (p * c (leadingCoeff p)⁻¹) :=
+ degree (minpoly A x) ≤ degree (p * C (leadingCoeff p)⁻¹) :=
min A x (monic_mul_leadingCoeff_inv pnz) (by simp [hp])
_ = degree p := degree_mul_leadingCoeff_inv p pnz
@@ -127,7 +127,7 @@ theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible
#align minpoly.eq_of_irreducible_of_monic minpoly.eq_of_irreducible_of_monic
theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
- (hp2 : Polynomial.aeval x p = 0) : p * c p.leadingCoeff⁻¹ = minpoly A x :=
+ (hp2 : Polynomial.aeval x p = 0) : p * C p.leadingCoeff⁻¹ = minpoly A x :=
by
have : p.leading_coeff ≠ 0 := leading_coeff_ne_zero.mpr hp1.ne_zero
apply eq_of_irreducible_of_monic
@@ -158,7 +158,7 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
- (a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (x - c a) :=
+ (a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) :=
by
refine' (minpoly.unique _ _ ((minpoly.monic hx).comp_x_sub_c _) _ fun q qmo hq => _).symm
· simp [aeval_comp]
@@ -173,7 +173,7 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
#align minpoly.add_algebra_map minpoly.add_algebraMap
theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
- (a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (x + c a) := by
+ (a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
simpa [sub_eq_add_neg] using add_algebra_map hx (-a)
#align minpoly.sub_algebra_map minpoly.sub_algebraMap
@@ -225,11 +225,11 @@ variable (B) [Nontrivial B]
/-- If `B/K` is a nontrivial algebra over a field, and `x` is an element of `K`,
then the minimal polynomial of `algebra_map K B x` is `X - C x`. -/
-theorem eq_x_sub_c (a : A) : minpoly A (algebraMap A B a) = x - c a :=
+theorem eq_x_sub_c (a : A) : minpoly A (algebraMap A B a) = X - C a :=
eq_x_sub_c_of_algebraMap_inj a (algebraMap A B).Injective
#align minpoly.eq_X_sub_C minpoly.eq_x_sub_c
-theorem eq_x_sub_C' (a : A) : minpoly A a = x - c a :=
+theorem eq_x_sub_C' (a : A) : minpoly A a = X - C a :=
eq_x_sub_c A a
#align minpoly.eq_X_sub_C' minpoly.eq_x_sub_C'
@@ -237,13 +237,13 @@ variable (A)
/-- The minimal polynomial of `0` is `X`. -/
@[simp]
-theorem zero : minpoly A (0 : B) = x := by
+theorem zero : minpoly A (0 : B) = X := by
simpa only [add_zero, C_0, sub_eq_add_neg, neg_zero, RingHom.map_zero] using eq_X_sub_C B (0 : A)
#align minpoly.zero minpoly.zero
/-- The minimal polynomial of `1` is `X - 1`. -/
@[simp]
-theorem one : minpoly A (1 : B) = x - 1 := by
+theorem one : minpoly A (1 : B) = X - 1 := by
simpa only [RingHom.map_one, C_1, sub_eq_add_neg] using eq_X_sub_C B (1 : A)
#align minpoly.one minpoly.one
@@ -270,7 +270,7 @@ of an element `x ∈ L`, then `y` maps to `x` under the field embedding. -/
theorem root {x : B} (hx : IsIntegral A x) {y : A} (h : IsRoot (minpoly A x) y) :
algebraMap A B y = x :=
by
- have key : minpoly A x = x - c y :=
+ have key : minpoly A x = X - C y :=
eq_of_monic_of_associated (monic hx) (monic_x_sub_c y)
(associated_of_dvd_dvd
((irreducible_x_sub_c y).dvd_symm (irreducible hx) (dvd_iff_isRoot.2 h))
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,7 +3,7 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
-/
-import Mathlib.Data.Polynomial.FieldDivision
+import Mathlib.Algebra.Polynomial.FieldDivision
import Mathlib.FieldTheory.Minpoly.Basic
import Mathlib.RingTheory.Algebraic
Generalize MulActionHom
so that it allows two different monoids acting, related by a morphism. This is inspired by the treatment of (semi)linear maps in mathlib, and allows to refactor them.
Let M
, N
, X
, Y
be types, with SMul M X
and SMul N Y
, and let φ : M → N
be a map.
MulActionHom φ X Y
, the type of equivariant functions from X
to Y
, consists of functions f : X → Y
such that f (m • x) = (φ m) • (f x)
for all m : M
and x : X
.Assume that we have Monoid M
, Monoid N
and that φ : M →* N
. For A
, B
by types with AddMonoid A
and AddMonoid B
, endowed with DistribMulAction M A
and DistribMulAction M B
:
DistribMulActionHom φ A B
is the type of equivariant additive monoid homomorphisms from A
to B
.Similarly, when R
and S
are types with Semiring R
, Semiring S
, MulSemiringAction M R
and MulSemiringAction N S
SMulSemiringHom φ R S
is the type of equivariant ring homomorphisms
from R
to S
.The above types have corresponding classes:
MulActionHomClass F φ X Y
states that F
is a type of bundled X → Y
homs which are φ
-equivariantDistribMulActionHomClass F φ A B
states that F
is a type of bundled A → B
homs preserving the additive monoid structure and φ
-equivariantSMulSemiringHomClass F φ R S
states that F
is a type of bundled R → S
homs preserving the ring structure and φ
-equivariantWe introduce the following notation to code equivariant maps
(the subscript index ₑ
is for equivariant) :
X →ₑ[φ] Y
is MulActionHom φ X Y
.A →ₑ+[φ] B
is DistribMulActionHom φ A B
.R →ₑ+*[φ] S
is MulSemiringActionHom φ R S
.When M = N
and φ = MonoidHom.id M
, we provide the backward compatible notation :
X →[M] Y
is MulActionHom ([@id](https://github.com/id) M) X Y
A →+[M] B
is DistribMulActionHom (MonoidHom.id M) A B
R →+*[M] S
is MulSemiringActionHom (MonoidHom.id M) R S
This more general definition is propagated all over mathlib, in particular to LinearMap
.
The treatment of composition of equivariant maps is inspired by that of semilinear maps. We provide classes CompTriple
and MonoidHom.CompTriple
of “composable triples`, and various instances for them.
@@ -181,7 +181,8 @@ def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) := by
intro f g h
- suffices (f : E →ₗ[F] K) = g by rwa [DFunLike.ext'_iff] at this ⊢
+ -- needs explicit coercion on the RHS
+ suffices (f : E →ₗ[F] K) = (g : E →ₗ[F] K) by rwa [DFunLike.ext'_iff] at this ⊢
rw [funext_iff] at h
exact LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
Subtype.ext_iff.mp (h ⟨e, he⟩)
@@ -300,11 +300,12 @@ lemma minpoly_algEquiv_toLinearMap (σ : L ≃ₐ[K] L) (hσ : IsOfFinOrder σ)
lemma minpoly_algHom_toLinearMap (σ : L →ₐ[K] L) (hσ : IsOfFinOrder σ) :
minpoly K σ.toLinearMap = X ^ (orderOf σ) - C 1 := by
have : orderOf σ = orderOf (AlgEquiv.algHomUnitsEquiv _ _ hσ.unit) := by
- erw [orderOf_injective (AlgEquiv.algHomUnitsEquiv K L)
- (AlgEquiv.algHomUnitsEquiv K L).injective]
- rw [← orderOf_units]
- rfl
- rw [this, ← minpoly_algEquiv_toLinearMap]; rfl
- rwa [← orderOf_pos_iff, ← this, orderOf_pos_iff]
+ rw [← MonoidHom.coe_coe, orderOf_injective (AlgEquiv.algHomUnitsEquiv K L)
+ (AlgEquiv.algHomUnitsEquiv K L).injective, ← orderOf_units, IsOfFinOrder.val_unit]
+ rw [this, ← minpoly_algEquiv_toLinearMap]
+ · apply congr_arg
+ ext
+ simp
+ · rwa [← orderOf_pos_iff, ← this, orderOf_pos_iff]
end AlgHom
Adds simp lemma for (p * q) %ₘ q = 0
and (q * p) %ₘ q = 0
.
Also corrects a misspelling: dvd_iff_modByMonic_eq_zero
should be modByMonic_eq_zero_iff_dvd
@@ -69,7 +69,7 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
by_cases hp0 : p = 0
· simp only [hp0, dvd_zero]
have hx : IsIntegral A x := IsAlgebraic.isIntegral ⟨p, hp0, hp⟩
- rw [← dvd_iff_modByMonic_eq_zero (monic hx)]
+ rw [← modByMonic_eq_zero_iff_dvd (monic hx)]
by_contra hnz
apply degree_le_of_ne_zero A x hnz
((aeval_modByMonic_eq_self_of_root (monic hx) (aeval _ _)).trans hp) |>.not_lt
These will be caught by the linter in a future lean version.
@@ -56,8 +56,7 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
have hx : IsIntegral A x := ⟨p, pmonic, hp⟩
symm; apply eq_of_sub_eq_zero
by_contra hnz
- have hd := degree_le_of_ne_zero A x hnz (by simp [hp])
- contrapose! hd
+ apply degree_le_of_ne_zero A x hnz (by simp [hp]) |>.not_lt
apply degree_sub_lt _ (minpoly.ne_zero hx)
· rw [(monic hx).leadingCoeff, pmonic.leadingCoeff]
· exact le_antisymm (min A x pmonic hp) (pmin (minpoly A x) (monic hx) (aeval A x))
@@ -72,9 +71,8 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
have hx : IsIntegral A x := IsAlgebraic.isIntegral ⟨p, hp0, hp⟩
rw [← dvd_iff_modByMonic_eq_zero (monic hx)]
by_contra hnz
- have hd := degree_le_of_ne_zero A x hnz
- ((aeval_modByMonic_eq_self_of_root (monic hx) (aeval _ _)).trans hp)
- contrapose! hd
+ apply degree_le_of_ne_zero A x hnz
+ ((aeval_modByMonic_eq_self_of_root (monic hx) (aeval _ _)).trans hp) |>.not_lt
exact degree_modByMonic_lt _ (monic hx)
#align minpoly.dvd minpoly.dvd
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)
@@ -25,7 +25,6 @@ open Polynomial Set Function minpoly
namespace minpoly
variable {A B : Type*}
-
variable (A) [Field A]
section Ring
@@ -234,7 +233,6 @@ end Ring
section IsDomain
variable [Ring B] [IsDomain B] [Algebra A B]
-
variable {A} {x : B}
/-- A minimal polynomial is prime. -/
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.
@@ -19,7 +19,8 @@ are irreducible, and uniquely determined by their defining property.
-/
-open Classical Polynomial Set Function minpoly
+open scoped Classical
+open Polynomial Set Function minpoly
namespace minpoly
Prove isSemisimple_of_mem_adjoin
: if two commuting endomorphisms of a finite-dimensional vector space over a perfect field are both semisimple, then every endomorphism in the algebra generated by them (in particular their product and sum) is semisimple.
In the same file LinearAlgebra/Semisimple.lean, eq_zero_of_isNilpotent_isSemisimple
and isSemisimple_of_squarefree_aeval_eq_zero
are golfed, and IsSemisimple.minpoly_squarefree
is proved
RingTheory/SimpleModule.lean:
Define IsSemisimpleRing R
to mean that R is a semisimple R-module.
add properties of simple modules and a characterization (they are exactly the quotients of the ring by maximal left ideals).
The annihilator of a semisimple module is a radical ideal.
Any module over a semisimple ring is semisimple.
A finite product of semisimple rings is semisimple.
Any quotient of a semisimple ring is semisimple.
Add Artin--Wedderburn as a TODO (proof_wanted).
Order/Atoms.lean: add the instance from IsSimpleOrder
to ComplementedLattice
, so that IsSimpleModule → IsSemisimpleModule
is automatically inferred.
Prerequisites for showing a product of semisimple rings is semisimple:
Algebra/Module/Submodule/Map.lean: generalize orderIsoMapComap
so that it only requires RingHomSurjective
rather than RingHomInvPair
Algebra/Ring/CompTypeclasses.lean, Mathlib/Algebra/Ring/Pi.lean, Algebra/Ring/Prod.lean: add RingHomSurjective instances
RingTheory/Artinian.lean:
quotNilradicalEquivPi
: the quotient of a commutative Artinian ring R by its nilradical is isomorphic to the (finite) product of its quotients by maximal ideals (therefore a product of fields).
equivPi
: if the ring is moreover reduced, then the ring itself is a product of fields. Deduce that R is a semisimple ring and both R and R[X] are decomposition monoids. Requires RingEquiv.quotientBot
in RingTheory/Ideal/QuotientOperations.lean.
Data/Polynomial/Eval.lean: the polynomial ring over a finite product of rings is isomorphic to the product of polynomial rings over individual rings. (Used to show R[X] is a decomposition monoid.)
Other necessary results:
FieldTheory/Minpoly/Field.lean: the minimal polynomial of an element in a reduced algebra over a field is radical.
RingTheory/PowerBasis.lean: generalize PowerBasis.finiteDimensional
and rename it to .finite
.
Annihilator stuff, some of which do not end up being used:
RingTheory/Ideal/Operations.lean: define Module.annihilator
and redefine Submodule.annihilator
in terms of it; add lemmas, including one that says an arbitrary intersection of radical ideals is radical. The new lemma Ideal.isRadical_iff_pow_one_lt
depends on pow_imp_self_of_one_lt
in Mathlib/Data/Nat/Interval.lean, which is also used to golf the proof of isRadical_iff_pow_one_lt
.
Algebra/Module/Torsion.lean: add a lemma and an instance (unused)
Data/Polynomial/Module/Basic.lean: add a def (unused) and a lemma
LinearAlgebra/AnnihilatingPolynomial.lean: add lemma span_minpoly_eq_annihilator
Some results about idempotent linear maps (projections) and idempotent elements, used to show that any (left) ideal in a semisimple ring is spanned by an idempotent element (unused):
LinearAlgebra/Projection.lean: add def isIdempotentElemEquiv
LinearAlgebra/Span.lean: add two lemmas
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -82,6 +82,9 @@ variable {A x} in
lemma dvd_iff {p : A[X]} : minpoly A x ∣ p ↔ Polynomial.aeval x p = 0 :=
⟨fun ⟨q, hq⟩ ↦ by rw [hq, map_mul, aeval, zero_mul], minpoly.dvd A x⟩
+theorem isRadical [IsReduced B] : IsRadical (minpoly A x) := fun n p dvd ↦ by
+ rw [dvd_iff] at dvd ⊢; rw [map_pow] at dvd; exact IsReduced.eq_zero _ ⟨n, dvd⟩
+
theorem dvd_map_of_isScalarTower (A K : Type*) {R : Type*} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by
slow / slower
porting notes (#11084)
Classifies by adding issue number #11083 to porting notes claiming anything semantically equivalent to:
attribute
because it caused extremely slow tactic
"@@ -167,7 +167,7 @@ noncomputable def Fintype.subtypeProd {E : Type*} {X : Set E} (hX : X.Finite) {L
variable (F E K : Type*) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F E] [Algebra F K]
[FiniteDimensional F E]
--- Porting note: removed `noncomputable!` since it seems not to be slow in lean 4,
+-- Porting note (#11083): removed `noncomputable!` since it seems not to be slow in lean 4,
-- though it isn't very computable in practice (since neither `finrank` nor `finBasis` are).
/-- Function from Hom_K(E,L) to pi type Π (x : basis), roots of min poly of x -/
def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
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>
@@ -299,8 +299,8 @@ lemma minpoly_algEquiv_toLinearMap (σ : L ≃ₐ[K] L) (hσ : IsOfFinOrder σ)
/-- The minimal polynomial (over `K`) of `σ : Gal(L/K)` is `X ^ (orderOf σ) - 1`. -/
lemma minpoly_algHom_toLinearMap (σ : L →ₐ[K] L) (hσ : IsOfFinOrder σ) :
minpoly K σ.toLinearMap = X ^ (orderOf σ) - C 1 := by
- have : orderOf σ = orderOf (AlgEquiv.algHomUnitsEquiv _ _ hσ.unit)
- · erw [orderOf_injective (AlgEquiv.algHomUnitsEquiv K L)
+ have : orderOf σ = orderOf (AlgEquiv.algHomUnitsEquiv _ _ hσ.unit) := by
+ erw [orderOf_injective (AlgEquiv.algHomUnitsEquiv K L)
(AlgEquiv.algHomUnitsEquiv K L).injective]
rw [← orderOf_units]
rfl
More precisely, the goal of these changes is to make the following work:
import Mathlib.FieldTheory.Minpoly.Field
open Module Polynomial
example {K V : Type*} [Field K] [AddCommGroup V] [Module K V] (f : End K V) :
(⊤ : Submodule K[X] <| AEval K V f).annihilator = K[X] ∙ minpoly K f := by
simp
Co-authored-by: Johan Commelin <johan@commelin.net>
@@ -78,6 +78,10 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
exact degree_modByMonic_lt _ (monic hx)
#align minpoly.dvd minpoly.dvd
+variable {A x} in
+lemma dvd_iff {p : A[X]} : minpoly A x ∣ p ↔ Polynomial.aeval x p = 0 :=
+ ⟨fun ⟨q, hq⟩ ↦ by rw [hq, map_mul, aeval, zero_mul], minpoly.dvd A x⟩
+
theorem dvd_map_of_isScalarTower (A K : Type*) {R : Type*} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by
@@ -104,6 +108,15 @@ theorem aeval_of_isScalarTower (R : Type*) {K T U : Type*} [CommRing R] [Field K
(minpoly.dvd_map_of_isScalarTower R K x) hy
#align minpoly.aeval_of_is_scalar_tower minpoly.aeval_of_isScalarTower
+/-- See also `minpoly.ker_eval` which relaxes the assumptions on `A` in exchange for
+stronger assumptions on `B`. -/
+@[simp]
+lemma ker_aeval_eq_span_minpoly :
+ RingHom.ker (Polynomial.aeval x) = A[X] ∙ minpoly A x := by
+ ext p
+ simp_rw [RingHom.mem_ker, ← minpoly.dvd_iff, Submodule.mem_span_singleton,
+ dvd_iff_exists_eq_mul_left, smul_eq_mul, eq_comm (a := p)]
+
variable {A x}
theorem eq_of_irreducible_of_monic [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -167,7 +167,7 @@ def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) := by
intro f g h
- suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this ⊢
+ suffices (f : E →ₗ[F] K) = g by rwa [DFunLike.ext'_iff] at this ⊢
rw [funext_iff] at h
exact LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
Subtype.ext_iff.mp (h ⟨e, he⟩)
Module.rank
of LinearMap
. (#9677)
LinearAlgebra/LinearIndependent: generalize linearIndependent_algHom_toLinearMap(')
to allow different domain and codomain of the AlgHom.
LinearAlgebra/Basic: add LinearEquiv.congrLeft
that works for two rings with commuting actions on the codomain.
LinearAlgebra/FreeModule/Finite/Matrix: generalize Module.Free.linearMap
, Module.Finite.linearMap
, and FiniteDimensional.finrank_linearMap
to work with two different rings that may be noncommutative. Add FiniteDimensional.rank_linearMap
, FiniteDimensional.(fin)rank_linearMap_self
, and card/cardinal_mk_algHom_le_rank
.
FieldTheory/Tower: remove the instance LinearMap.finite_dimensional''
which becomes redundant; mark finrank_linear_map'
as deprecated (superseded by finrank_linearMap_self
.
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -279,7 +279,7 @@ lemma minpoly_algEquiv_toLinearMap (σ : L ≃ₐ[K] L) (hσ : IsOfFinOrder σ)
simp_rw [← AlgEquiv.pow_toLinearMap] at hs
apply hq.ne_zero
simpa using Fintype.linearIndependent_iff.mp
- (((linearIndependent_algHom_toLinearMap' K L).comp _ AlgEquiv.coe_algHom_injective).comp _
+ (((linearIndependent_algHom_toLinearMap' K L L).comp _ AlgEquiv.coe_algHom_injective).comp _
(Subtype.val_injective.comp ((finEquivPowers σ hσ).injective)))
(q.coeff ∘ (↑)) hs ⟨_, H⟩
@@ -261,3 +261,37 @@ theorem coeff_zero_ne_zero (hx : IsIntegral A x) (h : x ≠ 0) : coeff (minpoly
end IsDomain
end minpoly
+
+section AlgHom
+
+variable {K L} [Field K] [CommRing L] [IsDomain L] [Algebra K L]
+
+/-- The minimal polynomial (over `K`) of `σ : Gal(L/K)` is `X ^ (orderOf σ) - 1`. -/
+lemma minpoly_algEquiv_toLinearMap (σ : L ≃ₐ[K] L) (hσ : IsOfFinOrder σ) :
+ minpoly K σ.toLinearMap = X ^ (orderOf σ) - C 1 := by
+ refine (minpoly.unique _ _ (monic_X_pow_sub_C _ hσ.orderOf_pos.ne.symm) ?_ ?_).symm
+ · rw [(aeval σ.toLinearMap).map_sub (X ^ orderOf σ) (C (1 : K))]
+ simp [← AlgEquiv.pow_toLinearMap, pow_orderOf_eq_one]
+ · intros q hq hs
+ rw [degree_eq_natDegree hq.ne_zero, degree_X_pow_sub_C hσ.orderOf_pos, Nat.cast_le, ← not_lt]
+ intro H
+ rw [aeval_eq_sum_range' H, ← Fin.sum_univ_eq_sum_range] at hs
+ simp_rw [← AlgEquiv.pow_toLinearMap] at hs
+ apply hq.ne_zero
+ simpa using Fintype.linearIndependent_iff.mp
+ (((linearIndependent_algHom_toLinearMap' K L).comp _ AlgEquiv.coe_algHom_injective).comp _
+ (Subtype.val_injective.comp ((finEquivPowers σ hσ).injective)))
+ (q.coeff ∘ (↑)) hs ⟨_, H⟩
+
+/-- The minimal polynomial (over `K`) of `σ : Gal(L/K)` is `X ^ (orderOf σ) - 1`. -/
+lemma minpoly_algHom_toLinearMap (σ : L →ₐ[K] L) (hσ : IsOfFinOrder σ) :
+ minpoly K σ.toLinearMap = X ^ (orderOf σ) - C 1 := by
+ have : orderOf σ = orderOf (AlgEquiv.algHomUnitsEquiv _ _ hσ.unit)
+ · erw [orderOf_injective (AlgEquiv.algHomUnitsEquiv K L)
+ (AlgEquiv.algHomUnitsEquiv K L).injective]
+ rw [← orderOf_units]
+ rfl
+ rw [this, ← minpoly_algEquiv_toLinearMap]; rfl
+ rwa [← orderOf_pos_iff, ← this, orderOf_pos_iff]
+
+end AlgHom
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>
@@ -43,7 +43,7 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
theorem ne_zero_of_finite (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
- minpoly.ne_zero <| IsIntegral.of_finite _ _
+ minpoly.ne_zero <| .of_finite A _
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
@@ -69,9 +69,7 @@ stronger assumptions on `B`. -/
theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
by_cases hp0 : p = 0
· simp only [hp0, dvd_zero]
- have hx : IsIntegral A x := by
- rw [← isAlgebraic_iff_isIntegral]
- exact ⟨p, hp0, hp⟩
+ have hx : IsIntegral A x := IsAlgebraic.isIntegral ⟨p, hp0, hp⟩
rw [← dvd_iff_modByMonic_eq_zero (monic hx)]
by_contra hnz
have hd := degree_le_of_ne_zero A x hnz
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 |
@@ -43,7 +43,7 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
theorem ne_zero_of_finite (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
- minpoly.ne_zero <| isIntegral_of_finite _ _
+ minpoly.ne_zero <| IsIntegral.of_finite _ _
#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
minpoly.eq_of_algebraMap_eq
by algebraMap_eq
(#7228)
Also changes the repetitive names minpoly.minpoly_algHom/Equiv
to minpoly.algHom/Equiv_eq
@@ -126,21 +126,6 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
· rwa [Polynomial.Monic, leadingCoeff_mul, leadingCoeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
-/-- If `y` is the image of `x` in an extension, their minimal polynomials coincide.
-
-We take `h : y = algebraMap L T x` as an argument because `rw h` typically fails
-since `IsIntegral R y` depends on y.
--/
-theorem eq_of_algebraMap_eq {K S T : Type*} [Field K] [CommRing S] [CommRing T] [Algebra K S]
- [Algebra K T] [Algebra S T] [IsScalarTower K S T] (hST : Function.Injective (algebraMap S T))
- {x : S} {y : T} (hx : IsIntegral K x) (h : y = algebraMap S T x) : minpoly K x = minpoly K y :=
- minpoly.unique _ _ (minpoly.monic hx)
- (by rw [h, aeval_algebraMap_apply, minpoly.aeval, RingHom.map_zero]) fun q q_monic root_q =>
- minpoly.min _ _ q_monic
- ((aeval_algebraMap_eq_zero_iff_of_injective hST).mp
- (h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
-#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
-
theorem add_algebraMap {B : Type*} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) := by
refine' (minpoly.unique _ _ ((minpoly.monic hx).comp_X_sub_C _) _ fun q qmo hq => _).symm
@@ -176,7 +176,7 @@ variable (F E K : Type*) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F
/-- Function from Hom_K(E,L) to pi type Π (x : basis), roots of min poly of x -/
def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
(x : range (FiniteDimensional.finBasis F E : _ → E)) :
- { l : K // l ∈ (((minpoly F x.1).map (algebraMap F K)).roots : Multiset K) } :=
+ { l : K // l ∈ (minpoly F x.1).aroots K } :=
⟨φ x, by
rw [mem_roots_map (minpoly.ne_zero_of_finite F x.val),
← aeval_def, aeval_algHom_apply, minpoly.aeval, map_zero]⟩
@@ -195,7 +195,7 @@ theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) := by
noncomputable instance AlgHom.fintype : Fintype (E →ₐ[F] K) :=
@Fintype.ofInjective _ _
(Fintype.subtypeProd (finite_range (FiniteDimensional.finBasis F E)) fun e =>
- ((minpoly F e).map (algebraMap F K)).roots)
+ (minpoly F e).aroots K)
_ (aux_inj_roots_of_min_poly F E K)
#align minpoly.alg_hom.fintype minpoly.AlgHom.fintype
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).
@@ -122,7 +122,7 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
apply eq_of_irreducible_of_monic
· exact Associated.irreducible ⟨⟨C p.leadingCoeff⁻¹, C p.leadingCoeff,
by rwa [← C_mul, inv_mul_cancel, C_1], by rwa [← C_mul, mul_inv_cancel, C_1]⟩, rfl⟩ hp1
- · rw [aeval_mul, hp2, MulZeroClass.zero_mul]
+ · rw [aeval_mul, hp2, zero_mul]
· rwa [Polynomial.Monic, leadingCoeff_mul, leadingCoeff_C, mul_inv_cancel]
#align minpoly.eq_of_irreducible minpoly.eq_of_irreducible
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -23,7 +23,7 @@ open Classical Polynomial Set Function minpoly
namespace minpoly
-variable {A B : Type _}
+variable {A B : Type*}
variable (A) [Field A]
@@ -80,14 +80,14 @@ theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
exact degree_modByMonic_lt _ (monic hx)
#align minpoly.dvd minpoly.dvd
-theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field K] [CommRing R]
+theorem dvd_map_of_isScalarTower (A K : Type*) {R : Type*} [CommRing A] [Field K] [CommRing R]
[Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) :
minpoly K x ∣ (minpoly A x).map (algebraMap A K) := by
refine' minpoly.dvd K x _
rw [aeval_map_algebraMap, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
-theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
+theorem dvd_map_of_isScalarTower' (R : Type*) {S : Type*} (K L : Type*) [CommRing R]
[CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
[Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
minpoly K (algebraMap S L s) ∣ map (algebraMap R K) (minpoly R s) := by
@@ -97,7 +97,7 @@ theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [Comm
#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_isScalarTower'
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
-theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
+theorem aeval_of_isScalarTower (R : Type*) {K T U : Type*} [CommRing R] [Field K] [CommRing T]
[Algebra R K] [Algebra K T] [Algebra R T] [IsScalarTower R K T] [CommSemiring U] [Algebra K U]
[Algebra R U] [IsScalarTower R K U] (x : T) (y : U)
(hy : Polynomial.aeval y (minpoly K x) = 0) : Polynomial.aeval y (minpoly R x) = 0 :=
@@ -131,7 +131,7 @@ theorem eq_of_irreducible [Nontrivial B] {p : A[X]} (hp1 : Irreducible p)
We take `h : y = algebraMap L T x` as an argument because `rw h` typically fails
since `IsIntegral R y` depends on y.
-/
-theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T] [Algebra K S]
+theorem eq_of_algebraMap_eq {K S T : Type*} [Field K] [CommRing S] [CommRing T] [Algebra K S]
[Algebra K T] [Algebra S T] [IsScalarTower K S T] (hST : Function.Injective (algebraMap S T))
{x : S} {y : T} (hx : IsIntegral K x) (h : y = algebraMap S T x) : minpoly K x = minpoly K y :=
minpoly.unique _ _ (minpoly.monic hx)
@@ -141,7 +141,7 @@ theorem eq_of_algebraMap_eq {K S T : Type _} [Field K] [CommRing S] [CommRing T]
(h ▸ root_q : Polynomial.aeval (algebraMap S T x) q = 0))
#align minpoly.eq_of_algebra_map_eq minpoly.eq_of_algebraMap_eq
-theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
+theorem add_algebraMap {B : Type*} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x + algebraMap A B a) = (minpoly A x).comp (X - C a) := by
refine' (minpoly.unique _ _ ((minpoly.monic hx).comp_X_sub_C _) _ fun q qmo hq => _).symm
· simp [aeval_comp]
@@ -155,7 +155,7 @@ theorem add_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
natDegree_X_add_C, mul_one] at H
#align minpoly.add_algebra_map minpoly.add_algebraMap
-theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
+theorem sub_algebraMap {B : Type*} [CommRing B] [Algebra A B] {x : B} (hx : IsIntegral A x)
(a : A) : minpoly A (x - algebraMap A B a) = (minpoly A x).comp (X + C a) := by
simpa [sub_eq_add_neg] using add_algebraMap hx (-a)
#align minpoly.sub_algebra_map minpoly.sub_algebraMap
@@ -163,12 +163,12 @@ theorem sub_algebraMap {B : Type _} [CommRing B] [Algebra A B] {x : B} (hx : IsI
section AlgHomFintype
/-- A technical finiteness result. -/
-noncomputable def Fintype.subtypeProd {E : Type _} {X : Set E} (hX : X.Finite) {L : Type _}
+noncomputable def Fintype.subtypeProd {E : Type*} {X : Set E} (hX : X.Finite) {L : Type*}
(F : E → Multiset L) : Fintype (∀ x : X, { l : L // l ∈ F x }) :=
@Pi.fintype _ _ _ (Finite.fintype hX) _
#align minpoly.fintype.subtype_prod minpoly.Fintype.subtypeProd
-variable (F E K : Type _) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F E] [Algebra F K]
+variable (F E K : Type*) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F E] [Algebra F K]
[FiniteDimensional F E]
-- Porting note: removed `noncomputable!` since it seems not to be slow in lean 4,
minpolynatDegree_le
and minpoly.degree_le
(#6152)
Also
minpoly.natDegree_le
and minpoly.degree_le
minpoly.ne_zero_of_finite_field_extension
to minpoly.ne_zero_of_finite
RingTheory/Algebraic
isIntegral_of_finite
and isAlgebraic_of_finite
Algebra.isIntegral_of_finite
to RingTheory/IntegralClosure
@@ -42,9 +42,9 @@ theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x
_ = degree p := degree_mul_leadingCoeff_inv p pnz
#align minpoly.degree_le_of_ne_zero minpoly.degree_le_of_ne_zero
-theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
- minpoly.ne_zero <| isIntegral_of_noetherian (IsNoetherian.iff_fg.2 inferInstance) _
-#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite_field_extension
+theorem ne_zero_of_finite (e : B) [FiniteDimensional A B] : minpoly A e ≠ 0 :=
+ minpoly.ne_zero <| isIntegral_of_finite _ _
+#align minpoly.ne_zero_of_finite_field_extension minpoly.ne_zero_of_finite
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
@@ -178,7 +178,7 @@ def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
(x : range (FiniteDimensional.finBasis F E : _ → E)) :
{ l : K // l ∈ (((minpoly F x.1).map (algebraMap F K)).roots : Multiset K) } :=
⟨φ x, by
- rw [mem_roots_map (minpoly.ne_zero_of_finite_field_extension F x.val),
+ rw [mem_roots_map (minpoly.ne_zero_of_finite F x.val),
← aeval_def, aeval_algHom_apply, minpoly.aeval, map_zero]⟩
#align minpoly.roots_of_min_poly_pi_type minpoly.rootsOfMinPolyPiType
@@ -2,16 +2,13 @@
Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Riccardo Brasca, Johan Commelin
-
-! This file was ported from Lean 3 source module field_theory.minpoly.field
-! leanprover-community/mathlib commit cbdf7b565832144d024caa5a550117c6df0204a5
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Polynomial.FieldDivision
import Mathlib.FieldTheory.Minpoly.Basic
import Mathlib.RingTheory.Algebraic
+#align_import field_theory.minpoly.field from "leanprover-community/mathlib"@"cbdf7b565832144d024caa5a550117c6df0204a5"
+
/-!
# Minimal polynomials on an algebra over a field
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -187,7 +187,7 @@ def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
theorem aux_inj_roots_of_min_poly : Injective (rootsOfMinPolyPiType F E K) := by
intro f g h
- suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this⊢
+ suffices (f : E →ₗ[F] K) = g by rwa [FunLike.ext'_iff] at this ⊢
rw [funext_iff] at h
exact LinearMap.ext_on (FiniteDimensional.finBasis F E).span_eq fun e he =>
Subtype.ext_iff.mp (h ⟨e, he⟩)
@@ -22,9 +22,7 @@ are irreducible, and uniquely determined by their defining property.
-/
-open Classical Polynomial
-
-open Polynomial Set Function minpoly
+open Classical Polynomial Set Function minpoly
namespace minpoly
@@ -37,8 +35,8 @@ section Ring
variable [Ring B] [Algebra A B] (x : B)
/-- If an element `x` is a root of a nonzero polynomial `p`, then the degree of `p` is at least the
-degree of the minimal polynomial of `x`. See also `gcd_domain_degree_le_of_ne_zero` which relaxes
-the assumptions on `A` in exchange for stronger assumptions on `B`. -/
+degree of the minimal polynomial of `x`. See also `minpoly.IsIntegrallyClosed.degree_le_of_ne_zero`
+which relaxes the assumptions on `A` in exchange for stronger assumptions on `B`. -/
theorem degree_le_of_ne_zero {p : A[X]} (pnz : p ≠ 0) (hp : Polynomial.aeval x p = 0) :
degree (minpoly A x) ≤ degree p :=
calc
@@ -53,8 +51,8 @@ theorem ne_zero_of_finite_field_extension (e : B) [FiniteDimensional A B] : minp
/-- The minimal polynomial of an element `x` is uniquely characterized by its defining property:
if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial
-is equal to the minimal polynomial of `x`. See also `minpoly.gcd_unique` which relaxes the
-assumptions on `A` in exchange for stronger assumptions on `B`. -/
+is equal to the minimal polynomial of `x`. See also `minpoly.IsIntegrallyClosed.Minpoly.unique`
+which relaxes the assumptions on `A` in exchange for stronger assumptions on `B`. -/
theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
(pmin : ∀ q : A[X], q.Monic → Polynomial.aeval x q = 0 → degree p ≤ degree q) :
p = minpoly A x := by
@@ -69,8 +67,8 @@ theorem unique {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0)
#align minpoly.unique minpoly.unique
/-- If an element `x` is a root of a polynomial `p`, then the minimal polynomial of `x` divides `p`.
-See also `minpoly.gcd_domain_dvd` which relaxes the assumptions on `A` in exchange for stronger
-assumptions on `B`. -/
+See also `minpoly.isIntegrallyClosed_dvd` which relaxes the assumptions on `A` in exchange for
+stronger assumptions on `B`. -/
theorem dvd {p : A[X]} (hp : Polynomial.aeval x p = 0) : minpoly A x ∣ p := by
by_cases hp0 : p = 0
· simp only [hp0, dvd_zero]
@@ -92,14 +90,14 @@ theorem dvd_map_of_isScalarTower (A K : Type _) {R : Type _} [CommRing A] [Field
rw [aeval_map_algebraMap, minpoly.aeval]
#align minpoly.dvd_map_of_is_scalar_tower minpoly.dvd_map_of_isScalarTower
-theorem dvd_map_of_is_scalar_tower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
+theorem dvd_map_of_isScalarTower' (R : Type _) {S : Type _} (K L : Type _) [CommRing R]
[CommRing S] [Field K] [CommRing L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L]
[Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) :
minpoly K (algebraMap S L s) ∣ map (algebraMap R K) (minpoly R s) := by
apply minpoly.dvd K (algebraMap S L s)
rw [← map_aeval_eq_aeval_map, minpoly.aeval, map_zero]
rw [← IsScalarTower.algebraMap_eq, ← IsScalarTower.algebraMap_eq]
-#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_is_scalar_tower'
+#align minpoly.dvd_map_of_is_scalar_tower' minpoly.dvd_map_of_isScalarTower'
/-- If `y` is a conjugate of `x` over a field `K`, then it is a conjugate over a subring `R`. -/
theorem aeval_of_isScalarTower (R : Type _) {K T U : Type _} [CommRing R] [Field K] [CommRing T]
@@ -176,10 +174,10 @@ noncomputable def Fintype.subtypeProd {E : Type _} {X : Set E} (hX : X.Finite) {
variable (F E K : Type _) [Field F] [Ring E] [CommRing K] [IsDomain K] [Algebra F E] [Algebra F K]
[FiniteDimensional F E]
--- Marked as `noncomputable!` since this definition takes multiple seconds to compile,
--- and isn't very computable in practice (since neither `finrank` nor `finBasis` are).
+-- Porting note: removed `noncomputable!` since it seems not to be slow in lean 4,
+-- though it isn't very computable in practice (since neither `finrank` nor `finBasis` are).
/-- Function from Hom_K(E,L) to pi type Π (x : basis), roots of min poly of x -/
-noncomputable def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
+def rootsOfMinPolyPiType (φ : E →ₐ[F] K)
(x : range (FiniteDimensional.finBasis F E : _ → E)) :
{ l : K // l ∈ (((minpoly F x.1).map (algebraMap F K)).roots : Multiset K) } :=
⟨φ x, by
The unported dependencies are