field_theory.minpoly.fieldMathlib.FieldTheory.Minpoly.Field

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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
 
Diff
@@ -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
 -/
 
Diff
@@ -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 =>
Diff
@@ -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"
 
Diff
@@ -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)
Diff
@@ -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
 -/
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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 :=
Diff
@@ -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]
Diff
@@ -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`. -/
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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 :=
Diff
@@ -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.
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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))
Diff
@@ -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))

Changes in mathlib4

mathlib3
mathlib4
move(Polynomial): Move out of Data (#11751)

Polynomial and MvPolynomial are algebraic objects, hence should be under Algebra (or at least not under Data)

Diff
@@ -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
 
feat: MulActionHom in the semilinear style (#6057)

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 φ-equivariant
  • DistribMulActionHomClass F φ A B states that F is a type of bundled A → B homs preserving the additive monoid structure and φ-equivariant
  • SMulSemiringHomClass F φ R S states that F is a type of bundled R → S homs preserving the ring structure and φ-equivariant

Notation

We 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.

Diff
@@ -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⟩)
chore: tidy various files (#11624)
Diff
@@ -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
feat: Polynomial.mul_modByMonic (#11113)

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

Diff
@@ -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
chore: avoid some unused variables (#11594)

These will be caught by the linter in a future lean version.

Diff
@@ -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
 
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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. -/
chore: scope open Classical (#11199)

We remove all but one open Classicals, 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.

Diff
@@ -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
 
feat: sum and product of commuting semisimple endomorphisms (#10808)
  • 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>

Diff
@@ -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
chore: classify slow / slower porting notes (#11084)

Classifies by adding issue number #11083 to porting notes claiming anything semantically equivalent to:

  • "very slow; improve performance?"
  • "quite slow; improve performance?"
  • "`tactic" was slow"
  • "removed attribute because it caused extremely slow tactic"
  • "proof was rewritten, because it was too slow"
  • "doing this make things very slow"
  • "slower implementation"
Diff
@@ -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)
chore: remove stream-of-consciousness uses of 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>

Diff
@@ -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
feat: the minimal polynomial is a generator of the annihilator ideal (#10008)

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>

Diff
@@ -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)
chore(*): rename 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>

Diff
@@ -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⟩)
feat(LinearAlgebra): generalize results about 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>

Diff
@@ -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⟩
 
feat: Cyclic extensions are kummer. (#9368)

Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>

Diff
@@ -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
chore(IntegralClosure): noncommutative generalizations and golfs (#8406)

Zulip

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_mapRingHom.isIntegralElem_map RingHom.is_integral_of_mem_closureRingHom.IsIntegralElem.of_mem_closure RingHom.is_integral_zero/oneRingHom.isIntegralElem_zero/one RingHom.is_integral_add/neg/sub/mul/of_mul_unitRingHom.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_transRingHom.IsIntegral.trans RingHom.isIntegral_quotient/tower_bot/top_of_isIntegralRingHom.IsIntegral.quotient/tower_bot/top isIntegral_of_mem_closure'IsIntegral.of_mem_closure' (and the '' version) isIntegral_of_surjectiveAlgebra.isIntegral_of_surjective

The next changed file is RingTheory/Algebraic:

  • Rename: of_larger_basetower_top (for consistency with IsIntegral) Algebra.isAlgebraic_of_finiteAlgebra.IsAlgebraic.of_finite Algebra.isAlgebraic_transAlgebra.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>

Diff
@@ -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
chore(RingTheory/{Algebraic, Localization/Integral}): rename decls to use dot notation (#8437)

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 |

Diff
@@ -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:
chore: replace minpoly.eq_of_algebraMap_eq by algebraMap_eq (#7228)

Also changes the repetitive names minpoly.minpoly_algHom/Equiv to minpoly.algHom/Equiv_eq

Diff
@@ -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
feat: roots in an algebra (#6740)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -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
 
chore: drop 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).

Diff
@@ -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
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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,
chore(FieldTheory/Adjoin): remove unnecessary assumptions in minpolynatDegree_le and minpoly.degree_le (#6152)

Also

  • fix the names of minpoly.natDegree_le and minpoly.degree_le
  • rename minpoly.ne_zero_of_finite_field_extension to minpoly.ne_zero_of_finite
  • reduce typeclass assumptions of some lemmas in RingTheory/Algebraic
  • add two lemmas isIntegral_of_finite and isAlgebraic_of_finite
  • move Algebra.isIntegral_of_finite to RingTheory/IntegralClosure
Diff
@@ -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
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
chore: clean up spacing around 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
Diff
@@ -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⟩)
chore: tidy various files (#4854)
Diff
@@ -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
feat: port FieldTheory.Minpoly.Field (#4232)

Dependencies 10 + 629

630 files ported (98.4%)
264713 lines ported (98.7%)
Show graph

The unported dependencies are