field_theory.minpoly.basicMathlib.FieldTheory.Minpoly.Basic

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -139,11 +139,11 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
   by
   have h : IsIntegral A x := by
     by_contra h
-    rw [eq_zero h, degree_zero, ← WithBot.coe_one] at hx 
+    rw [eq_zero h, degree_zero, ← WithBot.coe_one] at hx
     exact ne_of_lt (show ⊥ < ↑1 from WithBot.bot_lt_coe 1) hx
   have key := minpoly.aeval A x
   rw [eq_X_add_C_of_degree_eq_one hx, (minpoly.monic h).leadingCoeff, C_1, one_mul, aeval_add,
-    aeval_C, aeval_X, ← eq_neg_iff_add_eq_zero, ← RingHom.map_neg] at key 
+    aeval_C, aeval_X, ← eq_neg_iff_add_eq_zero, ← RingHom.map_neg] at key
   exact ⟨-(minpoly A x).coeff 0, key.symm⟩
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
 -/
@@ -169,12 +169,12 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   · exact (h <| (aeval_mod_by_monic_eq_self_of_root hm hp).trans <| aeval A x).elim
   obtain ⟨r, hr⟩ := (dvd_iff_mod_by_monic_eq_zero hm).1 h
   rw [hr]; have hlead := congr_arg leading_coeff hr
-  rw [mul_comm, leading_coeff_mul_monic hm, (monic hx).leadingCoeff] at hlead 
+  rw [mul_comm, leading_coeff_mul_monic hm, (monic hx).leadingCoeff] at hlead
   have : nat_degree r ≤ 0 :=
     by
     have hr0 : r ≠ 0 := by rintro rfl; exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
-    apply_fun nat_degree at hr 
-    rw [hm.nat_degree_mul' hr0] at hr 
+    apply_fun nat_degree at hr
+    rw [hm.nat_degree_mul' hr0] at hr
     apply Nat.le_of_add_le_add_left
     rw [add_zero]
     exact hr.symm.trans_le (nat_degree_le_nat_degree <| min A x hm hp)
@@ -189,9 +189,9 @@ theorem subsingleton [Subsingleton B] : minpoly A x = 1 :=
   by
   nontriviality A
   have := minpoly.min A x monic_one (Subsingleton.elim _ _)
-  rw [degree_one] at this 
+  rw [degree_one] at this
   cases' le_or_lt (minpoly A x).degree 0 with h h
-  · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h 
+  · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
   · exact (this.not_lt h).elim
 #align minpoly.subsingleton minpoly.subsingleton
 -/
@@ -240,7 +240,7 @@ theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   · rw [map_sub, aeval_C, aeval_X, sub_self]
   simp_rw [Classical.or_iff_not_imp_left]
   intro q hl h0
-  rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl 
+  rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl
   rw [eq_C_of_nat_degree_eq_zero hl] at h0 ⊢
   rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
 #align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_inj
@@ -280,7 +280,7 @@ theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   rw [← hf.is_unit_iff, ← hg.is_unit_iff]
   by_contra! h
   have heval := congr_arg (Polynomial.aeval x) he
-  rw [aeval A x, aeval_mul, mul_eq_zero] at heval 
+  rw [aeval A x, aeval_mul, mul_eq_zero] at heval
   cases heval
   · exact aeval_ne_zero_of_dvd_not_unit_minpoly hx hf ⟨hf.ne_zero, g, h.2, he.symm⟩ heval
   · refine' aeval_ne_zero_of_dvd_not_unit_minpoly hx hg ⟨hg.ne_zero, f, h.1, _⟩ heval
Diff
@@ -278,7 +278,7 @@ theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   by
   refine' (irreducible_of_monic (monic hx) <| ne_one A x).2 fun f g hf hg he => _
   rw [← hf.is_unit_iff, ← hg.is_unit_iff]
-  by_contra' h
+  by_contra! h
   have heval := congr_arg (Polynomial.aeval x) he
   rw [aeval A x, aeval_mul, mul_eq_zero] at heval 
   cases heval
Diff
@@ -238,7 +238,7 @@ theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   nontriviality A
   refine' (unique' A _ (monic_X_sub_C a) _ _).symm
   · rw [map_sub, aeval_C, aeval_X, sub_self]
-  simp_rw [or_iff_not_imp_left]
+  simp_rw [Classical.or_iff_not_imp_left]
   intro q hl h0
   rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl 
   rw [eq_C_of_nat_degree_eq_zero hl] at h0 ⊢
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Chris Hughes. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
 -/
-import Mathbin.RingTheory.IntegralClosure
+import RingTheory.IntegralClosure
 
 #align_import field_theory.minpoly.basic from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
Diff
@@ -75,20 +75,20 @@ theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
 #align minpoly.eq_zero minpoly.eq_zero
 -/
 
-#print minpoly.minpoly_algHom /-
-theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
+#print minpoly.algHom_eq /-
+theorem algHom_eq (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
   by
   refine' dif_ctx_congr (isIntegral_algHom_iff _ hf) (fun _ => _) fun _ => rfl
   simp_rw [← Polynomial.aeval_def, aeval_alg_hom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
-#align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
+#align minpoly.minpoly_alg_hom minpoly.algHom_eq
 -/
 
-#print minpoly.minpoly_algEquiv /-
+#print minpoly.algEquiv_eq /-
 @[simp]
-theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
-  minpoly_algHom (f : B →ₐ[A] B') f.Injective x
-#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquiv
+theorem algEquiv_eq (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
+  algHom_eq (f : B →ₐ[A] B') f.Injective x
+#align minpoly.minpoly_alg_equiv minpoly.algEquiv_eq
 -/
 
 variable (A x)
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2019 Chris Hughes. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
-
-! This file was ported from Lean 3 source module field_theory.minpoly.basic
-! 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.RingTheory.IntegralClosure
 
+#align_import field_theory.minpoly.basic from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
 /-!
 # Minimal polynomials
 
Diff
@@ -58,34 +58,45 @@ variable [CommRing A] [Ring B] [Ring B'] [Algebra A B] [Algebra A B']
 
 variable {x : B}
 
+#print minpoly.monic /-
 /-- A minimal polynomial is monic. -/
 theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) := by delta minpoly; rw [dif_pos hx];
   exact (degree_lt_wf.min_mem _ hx).1
 #align minpoly.monic minpoly.monic
+-/
 
+#print minpoly.ne_zero /-
 /-- A minimal polynomial is nonzero. -/
 theorem ne_zero [Nontrivial A] (hx : IsIntegral A x) : minpoly A x ≠ 0 :=
   (monic hx).NeZero
 #align minpoly.ne_zero minpoly.ne_zero
+-/
 
+#print minpoly.eq_zero /-
 theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
   dif_neg hx
 #align minpoly.eq_zero minpoly.eq_zero
+-/
 
+#print minpoly.minpoly_algHom /-
 theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
   by
   refine' dif_ctx_congr (isIntegral_algHom_iff _ hf) (fun _ => _) fun _ => rfl
   simp_rw [← Polynomial.aeval_def, aeval_alg_hom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
 #align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
+-/
 
+#print minpoly.minpoly_algEquiv /-
 @[simp]
 theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
   minpoly_algHom (f : B →ₐ[A] B') f.Injective x
 #align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquiv
+-/
 
 variable (A x)
 
+#print minpoly.aeval /-
 /-- An element is a root of its minimal polynomial. -/
 @[simp]
 theorem aeval : aeval x (minpoly A x) = 0 :=
@@ -94,6 +105,7 @@ theorem aeval : aeval x (minpoly A x) = 0 :=
   · exact (degree_lt_wf.min_mem _ hx).2
   · exact aeval_zero _
 #align minpoly.aeval minpoly.aeval
+-/
 
 #print minpoly.ne_one /-
 /-- A minimal polynomial is not `1`. -/
@@ -105,13 +117,16 @@ theorem ne_one [Nontrivial B] : minpoly A x ≠ 1 :=
 #align minpoly.ne_one minpoly.ne_one
 -/
 
+#print minpoly.map_ne_one /-
 theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f : A →+* R) :
     (minpoly A x).map f ≠ 1 := by
   by_cases hx : IsIntegral A x
   · exact mt ((monic hx).eq_one_of_map_eq_one f) (ne_one A x)
   · rw [eq_zero hx, Polynomial.map_zero]; exact zero_ne_one
 #align minpoly.map_ne_one minpoly.map_ne_one
+-/
 
+#print minpoly.not_isUnit /-
 /-- A minimal polynomial is not a unit. -/
 theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   by
@@ -120,7 +135,9 @@ theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   · exact mt (monic hx).eq_one_of_isUnit (ne_one A x)
   · rw [eq_zero hx]; exact not_isUnit_zero
 #align minpoly.not_is_unit minpoly.not_isUnit
+-/
 
+#print minpoly.mem_range_of_degree_eq_one /-
 theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (algebraMap A B).range :=
   by
   have h : IsIntegral A x := by
@@ -132,7 +149,9 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
     aeval_C, aeval_X, ← eq_neg_iff_add_eq_zero, ← RingHom.map_neg] at key 
   exact ⟨-(minpoly A x).coeff 0, key.symm⟩
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
+-/
 
+#print minpoly.min /-
 /-- The defining property of the minimal polynomial of an element `x`:
 it is the monic polynomial with smallest degree that has `x` as its root. -/
 theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
@@ -141,7 +160,9 @@ theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
   · exact le_of_not_lt (degree_lt_wf.not_lt_min _ hx ⟨pmonic, hp⟩)
   · simp only [degree_zero, bot_le]
 #align minpoly.min minpoly.min
+-/
 
+#print minpoly.unique' /-
 theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     (hl : ∀ q : A[X], degree q < degree p → q = 0 ∨ Polynomial.aeval x q ≠ 0) : p = minpoly A x :=
   by
@@ -163,6 +184,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   rw [eq_C_of_nat_degree_le_zero this, ← Nat.eq_zero_of_le_zero this, ← leading_coeff, ← hlead, C_1,
     mul_one]
 #align minpoly.unique' minpoly.unique'
+-/
 
 #print minpoly.subsingleton /-
 @[nontriviality]
@@ -210,6 +232,7 @@ theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A
 #align minpoly.degree_pos minpoly.degree_pos
 -/
 
+#print minpoly.eq_X_sub_C_of_algebraMap_inj /-
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
 theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
@@ -224,6 +247,7 @@ theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   rw [eq_C_of_nat_degree_eq_zero hl] at h0 ⊢
   rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
 #align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_inj
+-/
 
 end Ring
 
@@ -233,6 +257,7 @@ variable [Ring B] [Algebra A B]
 
 variable {x : B}
 
+#print minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly /-
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
 theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (hamonic : a.Monic)
     (hdvd : DvdNotUnit a (minpoly A x)) : Polynomial.aeval x a ≠ 0 :=
@@ -246,9 +271,11 @@ theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (ha
     C_1]
   exact isUnit_one
 #align minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly
+-/
 
 variable [IsDomain A] [IsDomain B]
 
+#print minpoly.irreducible /-
 /-- A minimal polynomial is irreducible. -/
 theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   by
@@ -262,6 +289,7 @@ theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   · refine' aeval_ne_zero_of_dvd_not_unit_minpoly hx hg ⟨hg.ne_zero, f, h.1, _⟩ heval
     rw [mul_comm, he]
 #align minpoly.irreducible minpoly.irreducible
+-/
 
 end IsDomain
 
Diff
@@ -155,7 +155,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   have : nat_degree r ≤ 0 :=
     by
     have hr0 : r ≠ 0 := by rintro rfl; exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
-    apply_fun nat_degree  at hr 
+    apply_fun nat_degree at hr 
     rw [hm.nat_degree_mul' hr0] at hr 
     apply Nat.le_of_add_le_add_left
     rw [add_zero]
Diff
@@ -125,11 +125,11 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
   by
   have h : IsIntegral A x := by
     by_contra h
-    rw [eq_zero h, degree_zero, ← WithBot.coe_one] at hx
+    rw [eq_zero h, degree_zero, ← WithBot.coe_one] at hx 
     exact ne_of_lt (show ⊥ < ↑1 from WithBot.bot_lt_coe 1) hx
   have key := minpoly.aeval A x
   rw [eq_X_add_C_of_degree_eq_one hx, (minpoly.monic h).leadingCoeff, C_1, one_mul, aeval_add,
-    aeval_C, aeval_X, ← eq_neg_iff_add_eq_zero, ← RingHom.map_neg] at key
+    aeval_C, aeval_X, ← eq_neg_iff_add_eq_zero, ← RingHom.map_neg] at key 
   exact ⟨-(minpoly A x).coeff 0, key.symm⟩
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
 
@@ -151,12 +151,12 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   · exact (h <| (aeval_mod_by_monic_eq_self_of_root hm hp).trans <| aeval A x).elim
   obtain ⟨r, hr⟩ := (dvd_iff_mod_by_monic_eq_zero hm).1 h
   rw [hr]; have hlead := congr_arg leading_coeff hr
-  rw [mul_comm, leading_coeff_mul_monic hm, (monic hx).leadingCoeff] at hlead
+  rw [mul_comm, leading_coeff_mul_monic hm, (monic hx).leadingCoeff] at hlead 
   have : nat_degree r ≤ 0 :=
     by
     have hr0 : r ≠ 0 := by rintro rfl; exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
-    apply_fun nat_degree  at hr
-    rw [hm.nat_degree_mul' hr0] at hr
+    apply_fun nat_degree  at hr 
+    rw [hm.nat_degree_mul' hr0] at hr 
     apply Nat.le_of_add_le_add_left
     rw [add_zero]
     exact hr.symm.trans_le (nat_degree_le_nat_degree <| min A x hm hp)
@@ -170,9 +170,9 @@ theorem subsingleton [Subsingleton B] : minpoly A x = 1 :=
   by
   nontriviality A
   have := minpoly.min A x monic_one (Subsingleton.elim _ _)
-  rw [degree_one] at this
+  rw [degree_one] at this 
   cases' le_or_lt (minpoly A x).degree 0 with h h
-  · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
+  · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h 
   · exact (this.not_lt h).elim
 #align minpoly.subsingleton minpoly.subsingleton
 -/
@@ -220,8 +220,8 @@ theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   · rw [map_sub, aeval_C, aeval_X, sub_self]
   simp_rw [or_iff_not_imp_left]
   intro q hl h0
-  rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl
-  rw [eq_C_of_nat_degree_eq_zero hl] at h0⊢
+  rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl 
+  rw [eq_C_of_nat_degree_eq_zero hl] at h0 ⊢
   rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
 #align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_inj
 
@@ -256,7 +256,7 @@ theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   rw [← hf.is_unit_iff, ← hg.is_unit_iff]
   by_contra' h
   have heval := congr_arg (Polynomial.aeval x) he
-  rw [aeval A x, aeval_mul, mul_eq_zero] at heval
+  rw [aeval A x, aeval_mul, mul_eq_zero] at heval 
   cases heval
   · exact aeval_ne_zero_of_dvd_not_unit_minpoly hx hf ⟨hf.ne_zero, g, h.2, he.symm⟩ heval
   · refine' aeval_ne_zero_of_dvd_not_unit_minpoly hx hg ⟨hg.ne_zero, f, h.1, _⟩ heval
Diff
@@ -86,7 +86,6 @@ theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpol
 
 variable (A x)
 
-#print minpoly.aeval /-
 /-- An element is a root of its minimal polynomial. -/
 @[simp]
 theorem aeval : aeval x (minpoly A x) = 0 :=
@@ -95,7 +94,6 @@ theorem aeval : aeval x (minpoly A x) = 0 :=
   · exact (degree_lt_wf.min_mem _ hx).2
   · exact aeval_zero _
 #align minpoly.aeval minpoly.aeval
--/
 
 #print minpoly.ne_one /-
 /-- A minimal polynomial is not `1`. -/
Diff
@@ -23,7 +23,7 @@ such as ireducibility under the assumption `B` is a domain.
 -/
 
 
-open Classical Polynomial
+open scoped Classical Polynomial
 
 open Polynomial Set Function
 
@@ -205,10 +205,12 @@ theorem natDegree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < natDegree (minp
 #align minpoly.nat_degree_pos minpoly.natDegree_pos
 -/
 
+#print minpoly.degree_pos /-
 /-- The degree of a minimal polynomial is positive. -/
 theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A x) :=
   natDegree_pos_iff_degree_pos.mp (natDegree_pos hx)
 #align minpoly.degree_pos minpoly.degree_pos
+-/
 
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
Diff
@@ -58,41 +58,20 @@ variable [CommRing A] [Ring B] [Ring B'] [Algebra A B] [Algebra A B']
 
 variable {x : B}
 
-/- warning: minpoly.monic -> minpoly.monic is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
-Case conversion may be inaccurate. Consider using '#align minpoly.monic minpoly.monicₓ'. -/
 /-- A minimal polynomial is monic. -/
 theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) := by delta minpoly; rw [dif_pos hx];
   exact (degree_lt_wf.min_mem _ hx).1
 #align minpoly.monic minpoly.monic
 
-/- warning: minpoly.ne_zero -> minpoly.ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_6 : Nontrivial.{u1} A], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) -> (Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} [_inst_6 : Nontrivial.{u2} A], (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) -> (Ne.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.ne_zero minpoly.ne_zeroₓ'. -/
 /-- A minimal polynomial is nonzero. -/
 theorem ne_zero [Nontrivial A] (hx : IsIntegral A x) : minpoly A x ≠ 0 :=
   (monic hx).NeZero
 #align minpoly.ne_zero minpoly.ne_zero
 
-/- warning: minpoly.eq_zero -> minpoly.eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (Not (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (Not (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_zero minpoly.eq_zeroₓ'. -/
 theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
   dif_neg hx
 #align minpoly.eq_zero minpoly.eq_zero
 
-/- warning: minpoly.minpoly_alg_hom -> minpoly.minpoly_algHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_hom minpoly.minpoly_algHomₓ'. -/
 theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
   by
@@ -100,9 +79,6 @@ theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B)
   simp_rw [← Polynomial.aeval_def, aeval_alg_hom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
 #align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
 
-/- warning: minpoly.minpoly_alg_equiv -> minpoly.minpoly_algEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquivₓ'. -/
 @[simp]
 theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
   minpoly_algHom (f : B →ₐ[A] B') f.Injective x
@@ -131,12 +107,6 @@ theorem ne_one [Nontrivial B] : minpoly A x ≠ 1 :=
 #align minpoly.ne_one minpoly.ne_one
 -/
 
-/- warning: minpoly.map_ne_one -> minpoly.map_ne_one is a dubious translation:
-lean 3 declaration is
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B] {R : Type.{u3}} [_inst_7 : Semiring.{u3} R] [_inst_8 : Nontrivial.{u3} R] (f : RingHom.{u1, u3} A R (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} R _inst_7)), Ne.{succ u3} (Polynomial.{u3} R _inst_7) (Polynomial.map.{u1, u3} A R (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) _inst_7 f (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{u3} (Polynomial.{u3} R _inst_7) 1 (OfNat.mk.{u3} (Polynomial.{u3} R _inst_7) 1 (One.one.{u3} (Polynomial.{u3} R _inst_7) (Polynomial.hasOne.{u3} R _inst_7))))
-but is expected to have type
-  forall (A : Type.{u1}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u3} B] [_inst_4 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u3} B] {R : Type.{u2}} [_inst_7 : Semiring.{u2} R] [_inst_8 : Nontrivial.{u2} R] (f : RingHom.{u1, u2} A R (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} R _inst_7)), Ne.{succ u2} (Polynomial.{u2} R _inst_7) (Polynomial.map.{u1, u2} A R (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) _inst_7 f (minpoly.{u1, u3} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{u2} (Polynomial.{u2} R _inst_7) 1 (One.toOfNat1.{u2} (Polynomial.{u2} R _inst_7) (Polynomial.one.{u2} R _inst_7)))
-Case conversion may be inaccurate. Consider using '#align minpoly.map_ne_one minpoly.map_ne_oneₓ'. -/
 theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f : A →+* R) :
     (minpoly A x).map f ≠ 1 := by
   by_cases hx : IsIntegral A x
@@ -144,12 +114,6 @@ theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f :
   · rw [eq_zero hx, Polynomial.map_zero]; exact zero_ne_one
 #align minpoly.map_ne_one minpoly.map_ne_one
 
-/- warning: minpoly.not_is_unit -> minpoly.not_isUnit is a dubious translation:
-lean 3 declaration is
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B], Not (IsUnit.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.ring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
-but is expected to have type
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B], Not (IsUnit.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
-Case conversion may be inaccurate. Consider using '#align minpoly.not_is_unit minpoly.not_isUnitₓ'. -/
 /-- A minimal polynomial is not a unit. -/
 theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   by
@@ -159,12 +123,6 @@ theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   · rw [eq_zero hx]; exact not_isUnit_zero
 #align minpoly.not_is_unit minpoly.not_isUnit
 
-/- warning: minpoly.mem_range_of_degree_eq_one -> minpoly.mem_range_of_degree_eq_one is a dubious translation:
-lean 3 declaration is
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B), (Eq.{1} (WithBot.{0} Nat) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{0} (WithBot.{0} Nat) 1 (OfNat.mk.{0} (WithBot.{0} Nat) 1 (One.one.{0} (WithBot.{0} Nat) (WithBot.hasOne.{0} Nat Nat.hasOne))))) -> (Membership.Mem.{u2, u2} B (Subring.{u2} B _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} B _inst_2) B (Subring.setLike.{u2} B _inst_2)) x (RingHom.range.{u1, u2} A B (CommRing.toRing.{u1} A _inst_1) _inst_2 (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)))
-but is expected to have type
-  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B), (Eq.{1} (WithBot.{0} Nat) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{0} (WithBot.{0} Nat) 1 (One.toOfNat1.{0} (WithBot.{0} Nat) (WithBot.one.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) -> (Membership.mem.{u1, u1} B (Subring.{u1} B _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} B _inst_2) B (Subring.instSetLikeSubring.{u1} B _inst_2)) x (RingHom.range.{u2, u1} A B (CommRing.toRing.{u2} A _inst_1) _inst_2 (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)))
-Case conversion may be inaccurate. Consider using '#align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_oneₓ'. -/
 theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (algebraMap A B).range :=
   by
   have h : IsIntegral A x := by
@@ -177,9 +135,6 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
   exact ⟨-(minpoly A x).coeff 0, key.symm⟩
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
 
-/- warning: minpoly.min -> minpoly.min is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.min minpoly.minₓ'. -/
 /-- The defining property of the minimal polynomial of an element `x`:
 it is the monic polynomial with smallest degree that has `x` as its root. -/
 theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
@@ -189,9 +144,6 @@ theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
   · simp only [degree_zero, bot_le]
 #align minpoly.min minpoly.min
 
-/- warning: minpoly.unique' -> minpoly.unique' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.unique' minpoly.unique'ₓ'. -/
 theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     (hl : ∀ q : A[X], degree q < degree p → q = 0 ∨ Polynomial.aeval x q ≠ 0) : p = minpoly A x :=
   by
@@ -253,20 +205,11 @@ theorem natDegree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < natDegree (minp
 #align minpoly.nat_degree_pos minpoly.natDegree_pos
 -/
 
-/- warning: minpoly.degree_pos -> minpoly.degree_pos is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (OfNat.ofNat.{0} (WithBot.{0} Nat) 0 (OfNat.mk.{0} (WithBot.{0} Nat) 0 (Zero.zero.{0} (WithBot.{0} Nat) (WithBot.hasZero.{0} Nat Nat.hasZero)))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (OfNat.ofNat.{0} (WithBot.{0} Nat) 0 (Zero.toOfNat0.{0} (WithBot.{0} Nat) (WithBot.zero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero)))) (Polynomial.degree.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)))
-Case conversion may be inaccurate. Consider using '#align minpoly.degree_pos minpoly.degree_posₓ'. -/
 /-- The degree of a minimal polynomial is positive. -/
 theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A x) :=
   natDegree_pos_iff_degree_pos.mp (natDegree_pos hx)
 #align minpoly.degree_pos minpoly.degree_pos
 
-/- warning: minpoly.eq_X_sub_C_of_algebra_map_inj -> minpoly.eq_X_sub_C_of_algebraMap_inj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_injₓ'. -/
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
 theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
@@ -290,9 +233,6 @@ variable [Ring B] [Algebra A B]
 
 variable {x : B}
 
-/- warning: minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly -> minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly minpoly.aeval_ne_zero_of_dvdNotUnit_minpolyₓ'. -/
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
 theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (hamonic : a.Monic)
     (hdvd : DvdNotUnit a (minpoly A x)) : Polynomial.aeval x a ≠ 0 :=
@@ -309,12 +249,6 @@ theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (ha
 
 variable [IsDomain A] [IsDomain B]
 
-/- warning: minpoly.irreducible -> minpoly.irreducible is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))] [_inst_5 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.ring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x))
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} [_inst_4 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))] [_inst_5 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)], (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Irreducible.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x))
-Case conversion may be inaccurate. Consider using '#align minpoly.irreducible minpoly.irreducibleₓ'. -/
 /-- A minimal polynomial is irreducible. -/
 theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   by
Diff
@@ -65,10 +65,7 @@ but is expected to have type
   forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
 Case conversion may be inaccurate. Consider using '#align minpoly.monic minpoly.monicₓ'. -/
 /-- A minimal polynomial is monic. -/
-theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) :=
-  by
-  delta minpoly
-  rw [dif_pos hx]
+theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) := by delta minpoly; rw [dif_pos hx];
   exact (degree_lt_wf.min_mem _ hx).1
 #align minpoly.monic minpoly.monic
 
@@ -144,8 +141,7 @@ theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f :
     (minpoly A x).map f ≠ 1 := by
   by_cases hx : IsIntegral A x
   · exact mt ((monic hx).eq_one_of_map_eq_one f) (ne_one A x)
-  · rw [eq_zero hx, Polynomial.map_zero]
-    exact zero_ne_one
+  · rw [eq_zero hx, Polynomial.map_zero]; exact zero_ne_one
 #align minpoly.map_ne_one minpoly.map_ne_one
 
 /- warning: minpoly.not_is_unit -> minpoly.not_isUnit is a dubious translation:
@@ -160,8 +156,7 @@ theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   haveI : Nontrivial A := (algebraMap A B).domain_nontrivial
   by_cases hx : IsIntegral A x
   · exact mt (monic hx).eq_one_of_isUnit (ne_one A x)
-  · rw [eq_zero hx]
-    exact not_isUnit_zero
+  · rw [eq_zero hx]; exact not_isUnit_zero
 #align minpoly.not_is_unit minpoly.not_isUnit
 
 /- warning: minpoly.mem_range_of_degree_eq_one -> minpoly.mem_range_of_degree_eq_one is a dubious translation:
@@ -202,18 +197,14 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   by
   nontriviality A
   have hx : IsIntegral A x := ⟨p, hm, hp⟩
-  obtain h | h := hl _ ((minpoly A x).degree_modByMonic_lt hm)
-  swap
+  obtain h | h := hl _ ((minpoly A x).degree_modByMonic_lt hm); swap
   · exact (h <| (aeval_mod_by_monic_eq_self_of_root hm hp).trans <| aeval A x).elim
   obtain ⟨r, hr⟩ := (dvd_iff_mod_by_monic_eq_zero hm).1 h
-  rw [hr]
-  have hlead := congr_arg leading_coeff hr
+  rw [hr]; have hlead := congr_arg leading_coeff hr
   rw [mul_comm, leading_coeff_mul_monic hm, (monic hx).leadingCoeff] at hlead
   have : nat_degree r ≤ 0 :=
     by
-    have hr0 : r ≠ 0 := by
-      rintro rfl
-      exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
+    have hr0 : r ≠ 0 := by rintro rfl; exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
     apply_fun nat_degree  at hr
     rw [hm.nat_degree_mul' hr0] at hr
     apply Nat.le_of_add_le_add_left
@@ -256,8 +247,7 @@ theorem natDegree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < natDegree (minp
   intro ndeg_eq_zero
   have eq_one : minpoly A x = 1 :=
     by
-    rw [eq_C_of_nat_degree_eq_zero ndeg_eq_zero]
-    convert C_1
+    rw [eq_C_of_nat_degree_eq_zero ndeg_eq_zero]; convert C_1
     simpa only [ndeg_eq_zero.symm] using (monic hx).leadingCoeff
   simpa only [eq_one, AlgHom.map_one, one_ne_zero] using aeval A x
 #align minpoly.nat_degree_pos minpoly.natDegree_pos
Diff
@@ -94,10 +94,7 @@ theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
 #align minpoly.eq_zero minpoly.eq_zero
 
 /- warning: minpoly.minpoly_alg_hom -> minpoly.minpoly_algHom is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u3} B B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f)) -> (forall (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
-but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u1} B B' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f)) -> (forall (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_hom minpoly.minpoly_algHomₓ'. -/
 theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
@@ -107,10 +104,7 @@ theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B)
 #align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
 
 /- warning: minpoly.minpoly_alg_equiv -> minpoly.minpoly_algEquiv is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') (AlgEquiv.hasCoeToFun.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)
-but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5)))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquivₓ'. -/
 @[simp]
 theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
@@ -189,10 +183,7 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
 
 /- warning: minpoly.min -> minpoly.min is a dubious translation:
-lean 3 declaration is
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p))
-but is expected to have type
-  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p))
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.min minpoly.minₓ'. -/
 /-- The defining property of the minimal polynomial of an element `x`:
 it is the monic polynomial with smallest degree that has `x` as its root. -/
@@ -204,10 +195,7 @@ theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
 #align minpoly.min minpoly.min
 
 /- warning: minpoly.unique' -> minpoly.unique' is a dubious translation:
-lean 3 declaration is
-  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 (CommRing.toRing.{u1} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{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 _inst_1)) q) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p)) -> (Or (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) q (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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))))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) p (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
-but is expected to have type
-  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{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 _inst_1)) q) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p)) -> (Or (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) q (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) _inst_2)))))))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) p (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.unique' minpoly.unique'ₓ'. -/
 theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     (hl : ∀ q : A[X], degree q < degree p → q = 0 ∨ Polynomial.aeval x q ≠ 0) : p = minpoly A x :=
@@ -287,10 +275,7 @@ theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A
 #align minpoly.degree_pos minpoly.degree_pos
 
 /- warning: minpoly.eq_X_sub_C_of_algebra_map_inj -> minpoly.eq_X_sub_C_of_algebraMap_inj is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (a : A), (Function.Injective.{succ u1, succ u2} A 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_3))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{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 _inst_1))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.sub.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) a)))
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (a : A), (Function.Injective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3) a)) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (instHSub.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.sub.{u2} A (CommRing.toRing.{u2} A _inst_1))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (Polynomial.C.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_injₓ'. -/
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
@@ -316,10 +301,7 @@ variable [Ring B] [Algebra A B]
 variable {x : B}
 
 /- warning: minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly -> minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} {a : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) a) -> (DvdNotUnit.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.commSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) a (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) a) (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 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} {a : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) a) -> (DvdNotUnit.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.commSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) _inst_2))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly minpoly.aeval_ne_zero_of_dvdNotUnit_minpolyₓ'. -/
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
 theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (hamonic : a.Monic)
Diff
@@ -97,7 +97,7 @@ theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u3} B B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f)) -> (forall (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
 but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u1} B B' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f)) -> (forall (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x))
+  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u1} B B' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f)) -> (forall (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x))
 Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_hom minpoly.minpoly_algHomₓ'. -/
 theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
@@ -110,7 +110,7 @@ theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B)
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') (AlgEquiv.hasCoeToFun.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)
 but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5)))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x)
+  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5)))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x)
 Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquivₓ'. -/
 @[simp]
 theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
@@ -192,7 +192,7 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
 lean 3 declaration is
   forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p))
 but is expected to have type
-  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p))
+  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p))
 Case conversion may be inaccurate. Consider using '#align minpoly.min minpoly.minₓ'. -/
 /-- The defining property of the minimal polynomial of an element `x`:
 it is the monic polynomial with smallest degree that has `x` as its root. -/
@@ -207,7 +207,7 @@ theorem min {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 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 (CommRing.toRing.{u1} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{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 _inst_1)) q) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p)) -> (Or (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) q (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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))))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) p (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
 but is expected to have type
-  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{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 _inst_1)) q) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p)) -> (Or (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) q (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) _inst_2)))))))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) p (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
+  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{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 _inst_1)) q) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p)) -> (Or (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) q (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) _inst_2)))))))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) p (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
 Case conversion may be inaccurate. Consider using '#align minpoly.unique' minpoly.unique'ₓ'. -/
 theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     (hl : ∀ q : A[X], degree q < degree p → q = 0 ∨ Polynomial.aeval x q ≠ 0) : p = minpoly A x :=
@@ -319,7 +319,7 @@ variable {x : B}
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} {a : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) a) -> (DvdNotUnit.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.commSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) a (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) a) (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 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} {a : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) a) -> (DvdNotUnit.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.commSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) _inst_2))))))
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} {a : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) a) -> (DvdNotUnit.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.commSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly minpoly.aeval_ne_zero_of_dvdNotUnit_minpolyₓ'. -/
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
 theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (hamonic : a.Monic)
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
 
 ! This file was ported from Lean 3 source module field_theory.minpoly.basic
-! leanprover-community/mathlib commit df0098f0db291900600f32070f6abb3e178be2ba
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.RingTheory.IntegralClosure
 /-!
 # Minimal polynomials
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the minimal polynomial of an element `x` of an `A`-algebra `B`,
 under the assumption that x is integral over `A`, and derives some basic properties
 such as ireducibility under the assumption `B` is a domain.
Diff
@@ -30,6 +30,7 @@ section MinPolyDef
 
 variable (A) [CommRing A] [Ring B] [Algebra A B]
 
+#print minpoly /-
 /-- Suppose `x : B`, where `B` is an `A`-algebra.
 
 The minimal polynomial `minpoly A x` of `x`
@@ -42,6 +43,7 @@ the minimal polynomial of `f` is `minpoly 𝕜 f`.
 noncomputable def minpoly (x : B) : A[X] :=
   if hx : IsIntegral A x then degree_lt_wf.min _ hx else 0
 #align minpoly minpoly
+-/
 
 end MinPolyDef
 
@@ -53,6 +55,12 @@ variable [CommRing A] [Ring B] [Ring B'] [Algebra A B] [Algebra A B']
 
 variable {x : B}
 
+/- warning: minpoly.monic -> minpoly.monic is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.monic minpoly.monicₓ'. -/
 /-- A minimal polynomial is monic. -/
 theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) :=
   by
@@ -61,15 +69,33 @@ theorem monic (hx : IsIntegral A x) : Monic (minpoly A x) :=
   exact (degree_lt_wf.min_mem _ hx).1
 #align minpoly.monic minpoly.monic
 
+/- warning: minpoly.ne_zero -> minpoly.ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_6 : Nontrivial.{u1} A], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) -> (Ne.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} [_inst_6 : Nontrivial.{u2} A], (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) -> (Ne.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.ne_zero minpoly.ne_zeroₓ'. -/
 /-- A minimal polynomial is nonzero. -/
 theorem ne_zero [Nontrivial A] (hx : IsIntegral A x) : minpoly A x ≠ 0 :=
   (monic hx).NeZero
 #align minpoly.ne_zero minpoly.ne_zero
 
+/- warning: minpoly.eq_zero -> minpoly.eq_zero is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B}, (Not (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B}, (Not (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x) (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_zero minpoly.eq_zeroₓ'. -/
 theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
   dif_neg hx
 #align minpoly.eq_zero minpoly.eq_zero
 
+/- warning: minpoly.minpoly_alg_hom -> minpoly.minpoly_algHom is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u3} B B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f)) -> (forall (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') ([anonymous].{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
+but is expected to have type
+  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5), (Function.Injective.{succ u2, succ u1} B B' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f)) -> (forall (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgHom.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgHom.algHomClass.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_hom minpoly.minpoly_algHomₓ'. -/
 theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x :=
   by
@@ -77,6 +103,12 @@ theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B)
   simp_rw [← Polynomial.aeval_def, aeval_alg_hom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
 #align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
 
+/- warning: minpoly.minpoly_alg_equiv -> minpoly.minpoly_algEquiv is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} {B' : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u3} B'] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u1, u3} A B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B' _inst_3)] (f : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u3} A B' _inst_1 _inst_3 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) (fun (_x : AlgEquiv.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) => B -> B') (AlgEquiv.hasCoeToFun.{u1, u2, u3} A B B' (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u3} B' _inst_3) _inst_4 _inst_5) f x)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)
+but is expected to have type
+  forall {A : Type.{u3}} {B : Type.{u2}} {B' : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Ring.{u1} B'] [_inst_4 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] [_inst_5 : Algebra.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3)] (f : AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (x : B), Eq.{succ u3} (Polynomial.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (minpoly.{u3, u1} A ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') x) _inst_1 _inst_3 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (SMulZeroClass.toSMul.{u3, 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.{u3, 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.{u3, u2} A B (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4))))) (SMulZeroClass.toSMul.{u3, 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_3)))))) (DistribSMul.toSMulZeroClass.{u3, 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_3)))))) (DistribMulAction.toDistribSMul.{u3, u1} A B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} 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))))) (AddCommMonoid.toAddMonoid.{u1} B' (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3))) (Module.toDistribMulAction.{u3, u2} A B (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2)))) (Algebra.toModule.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)) (Module.toDistribMulAction.{u3, u1} A B' (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B' (Semiring.toNonAssocSemiring.{u1} B' (Ring.toSemiring.{u1} B' _inst_3)))) (Algebra.toModule.{u3, u1} A B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u1} B' _inst_3) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) (AlgEquivClass.toAlgHomClass.{max u2 u1, u3, u2, u1} (AlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5) A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5 (AlgEquiv.instAlgEquivClassAlgEquiv.{u3, u2, u1} A B B' (CommRing.toCommSemiring.{u3} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) (Ring.toSemiring.{u1} B' _inst_3) _inst_4 _inst_5)))))) f x)) (minpoly.{u3, u2} A B _inst_1 _inst_2 _inst_4 x)
+Case conversion may be inaccurate. Consider using '#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquivₓ'. -/
 @[simp]
 theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
   minpoly_algHom (f : B →ₐ[A] B') f.Injective x
@@ -84,6 +116,7 @@ theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpol
 
 variable (A x)
 
+#print minpoly.aeval /-
 /-- An element is a root of its minimal polynomial. -/
 @[simp]
 theorem aeval : aeval x (minpoly A x) = 0 :=
@@ -92,7 +125,9 @@ theorem aeval : aeval x (minpoly A x) = 0 :=
   · exact (degree_lt_wf.min_mem _ hx).2
   · exact aeval_zero _
 #align minpoly.aeval minpoly.aeval
+-/
 
+#print minpoly.ne_one /-
 /-- A minimal polynomial is not `1`. -/
 theorem ne_one [Nontrivial B] : minpoly A x ≠ 1 :=
   by
@@ -100,7 +135,14 @@ theorem ne_one [Nontrivial B] : minpoly A x ≠ 1 :=
   refine' (one_ne_zero : (1 : B) ≠ 0) _
   simpa using congr_arg (Polynomial.aeval x) h
 #align minpoly.ne_one minpoly.ne_one
+-/
 
+/- warning: minpoly.map_ne_one -> minpoly.map_ne_one is a dubious translation:
+lean 3 declaration is
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B] {R : Type.{u3}} [_inst_7 : Semiring.{u3} R] [_inst_8 : Nontrivial.{u3} R] (f : RingHom.{u1, u3} A R (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} R _inst_7)), Ne.{succ u3} (Polynomial.{u3} R _inst_7) (Polynomial.map.{u1, u3} A R (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) _inst_7 f (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{u3} (Polynomial.{u3} R _inst_7) 1 (OfNat.mk.{u3} (Polynomial.{u3} R _inst_7) 1 (One.one.{u3} (Polynomial.{u3} R _inst_7) (Polynomial.hasOne.{u3} R _inst_7))))
+but is expected to have type
+  forall (A : Type.{u1}) {B : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u3} B] [_inst_4 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u3} B] {R : Type.{u2}} [_inst_7 : Semiring.{u2} R] [_inst_8 : Nontrivial.{u2} R] (f : RingHom.{u1, u2} A R (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} R _inst_7)), Ne.{succ u2} (Polynomial.{u2} R _inst_7) (Polynomial.map.{u1, u2} A R (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) _inst_7 f (minpoly.{u1, u3} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{u2} (Polynomial.{u2} R _inst_7) 1 (One.toOfNat1.{u2} (Polynomial.{u2} R _inst_7) (Polynomial.one.{u2} R _inst_7)))
+Case conversion may be inaccurate. Consider using '#align minpoly.map_ne_one minpoly.map_ne_oneₓ'. -/
 theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f : A →+* R) :
     (minpoly A x).map f ≠ 1 := by
   by_cases hx : IsIntegral A x
@@ -109,6 +151,12 @@ theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f :
     exact zero_ne_one
 #align minpoly.map_ne_one minpoly.map_ne_one
 
+/- warning: minpoly.not_is_unit -> minpoly.not_isUnit is a dubious translation:
+lean 3 declaration is
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B], Not (IsUnit.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.ring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
+but is expected to have type
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) [_inst_6 : Nontrivial.{u2} B], Not (IsUnit.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.not_is_unit minpoly.not_isUnitₓ'. -/
 /-- A minimal polynomial is not a unit. -/
 theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
   by
@@ -119,6 +167,12 @@ theorem not_isUnit [Nontrivial B] : ¬IsUnit (minpoly A x) :=
     exact not_isUnit_zero
 #align minpoly.not_is_unit minpoly.not_isUnit
 
+/- warning: minpoly.mem_range_of_degree_eq_one -> minpoly.mem_range_of_degree_eq_one is a dubious translation:
+lean 3 declaration is
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B), (Eq.{1} (WithBot.{0} Nat) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{0} (WithBot.{0} Nat) 1 (OfNat.mk.{0} (WithBot.{0} Nat) 1 (One.one.{0} (WithBot.{0} Nat) (WithBot.hasOne.{0} Nat Nat.hasOne))))) -> (Membership.Mem.{u2, u2} B (Subring.{u2} B _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} B _inst_2) B (Subring.setLike.{u2} B _inst_2)) x (RingHom.range.{u1, u2} A B (CommRing.toRing.{u1} A _inst_1) _inst_2 (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4)))
+but is expected to have type
+  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B), (Eq.{1} (WithBot.{0} Nat) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (OfNat.ofNat.{0} (WithBot.{0} Nat) 1 (One.toOfNat1.{0} (WithBot.{0} Nat) (WithBot.one.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) -> (Membership.mem.{u1, u1} B (Subring.{u1} B _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} B _inst_2) B (Subring.instSetLikeSubring.{u1} B _inst_2)) x (RingHom.range.{u2, u1} A B (CommRing.toRing.{u2} A _inst_1) _inst_2 (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)))
+Case conversion may be inaccurate. Consider using '#align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_oneₓ'. -/
 theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (algebraMap A B).range :=
   by
   have h : IsIntegral A x := by
@@ -131,6 +185,12 @@ theorem mem_range_of_degree_eq_one (hx : (minpoly A x).degree = 1) : x ∈ (alge
   exact ⟨-(minpoly A x).coeff 0, key.symm⟩
 #align minpoly.mem_range_of_degree_eq_one minpoly.mem_range_of_degree_eq_one
 
+/- warning: minpoly.min -> minpoly.min is a dubious translation:
+lean 3 declaration is
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p))
+but is expected to have type
+  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 _inst_1)) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x)) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p))
+Case conversion may be inaccurate. Consider using '#align minpoly.min minpoly.minₓ'. -/
 /-- The defining property of the minimal polynomial of an element `x`:
 it is the monic polynomial with smallest degree that has `x` as its root. -/
 theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
@@ -140,6 +200,12 @@ theorem min {p : A[X]} (pmonic : p.Monic) (hp : Polynomial.aeval x p = 0) :
   · simp only [degree_zero, bot_le]
 #align minpoly.min minpoly.min
 
+/- warning: minpoly.unique' -> minpoly.unique' is a dubious translation:
+lean 3 declaration is
+  forall (A : Type.{u1}) {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_4 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (x : B) {p : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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 (CommRing.toRing.{u1} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{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 _inst_1)) q) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) p)) -> (Or (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) q (OfNat.ofNat.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (OfNat.mk.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) 0 (Zero.zero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.zero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_4) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_4 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))))))))))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) p (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_4 x))
+but is expected to have type
+  forall (A : Type.{u2}) {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_4 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (x : B) {p : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) p) _inst_2)))))) -> (forall (q : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))), (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{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 _inst_1)) q) (Polynomial.degree.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) p)) -> (Or (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) q (OfNat.ofNat.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.zero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_4))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_4 x) q) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) q) _inst_2)))))))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) p (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_4 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.unique' minpoly.unique'ₓ'. -/
 theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     (hl : ∀ q : A[X], degree q < degree p → q = 0 ∨ Polynomial.aeval x q ≠ 0) : p = minpoly A x :=
   by
@@ -166,6 +232,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     mul_one]
 #align minpoly.unique' minpoly.unique'
 
+#print minpoly.subsingleton /-
 @[nontriviality]
 theorem subsingleton [Subsingleton B] : minpoly A x = 1 :=
   by
@@ -176,6 +243,7 @@ theorem subsingleton [Subsingleton B] : minpoly A x = 1 :=
   · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
   · exact (this.not_lt h).elim
 #align minpoly.subsingleton minpoly.subsingleton
+-/
 
 end Ring
 
@@ -189,6 +257,7 @@ variable [Ring B] [Algebra A B]
 
 variable {x : B}
 
+#print minpoly.natDegree_pos /-
 /-- The degree of a minimal polynomial, as a natural number, is positive. -/
 theorem natDegree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < natDegree (minpoly A x) :=
   by
@@ -201,15 +270,28 @@ theorem natDegree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < natDegree (minp
     simpa only [ndeg_eq_zero.symm] using (monic hx).leadingCoeff
   simpa only [eq_one, AlgHom.map_one, one_ne_zero] using aeval A x
 #align minpoly.nat_degree_pos minpoly.natDegree_pos
+-/
 
+/- warning: minpoly.degree_pos -> minpoly.degree_pos is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (OfNat.ofNat.{0} (WithBot.{0} Nat) 0 (OfNat.mk.{0} (WithBot.{0} Nat) 0 (Zero.zero.{0} (WithBot.{0} Nat) (WithBot.hasZero.{0} Nat Nat.hasZero)))) (Polynomial.degree.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : Nontrivial.{u2} B], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (OfNat.ofNat.{0} (WithBot.{0} Nat) 0 (Zero.toOfNat0.{0} (WithBot.{0} Nat) (WithBot.zero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero)))) (Polynomial.degree.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)))
+Case conversion may be inaccurate. Consider using '#align minpoly.degree_pos minpoly.degree_posₓ'. -/
 /-- The degree of a minimal polynomial is positive. -/
 theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A x) :=
   natDegree_pos_iff_degree_pos.mp (natDegree_pos hx)
 #align minpoly.degree_pos minpoly.degree_pos
 
+/- warning: minpoly.eq_X_sub_C_of_algebra_map_inj -> minpoly.eq_X_sub_C_of_algebraMap_inj is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] (a : A), (Function.Injective.{succ u1, succ u2} A 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_3))) -> (Eq.{succ u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B _inst_2))) (algebraMap.{u1, u2} A B (CommRing.toCommSemiring.{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 _inst_1))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (instHSub.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.sub.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.X.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (fun (_x : RingHom.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) => A -> (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} A (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.semiring.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (Polynomial.C.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) a)))
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] (a : A), (Function.Injective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3))) -> (Eq.{succ u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (minpoly.{u2, u1} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) 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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B _inst_2)))))) (algebraMap.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3) a)) (HSub.hSub.{u2, u2, u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (instHSub.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.sub.{u2} A (CommRing.toRing.{u2} A _inst_1))) (Polynomial.X.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (Polynomial.C.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a)))
+Case conversion may be inaccurate. Consider using '#align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_injₓ'. -/
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
-theorem eq_x_sub_c_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
+theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
     minpoly A (algebraMap A B a) = X - C a :=
   by
   nontriviality A
@@ -220,7 +302,7 @@ theorem eq_x_sub_c_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   rw [← nat_degree_lt_nat_degree_iff h0, nat_degree_X_sub_C, Nat.lt_one_iff] at hl
   rw [eq_C_of_nat_degree_eq_zero hl] at h0⊢
   rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
-#align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_x_sub_c_of_algebraMap_inj
+#align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_inj
 
 end Ring
 
@@ -230,6 +312,12 @@ variable [Ring B] [Algebra A B]
 
 variable {x : B}
 
+/- warning: minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly -> minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} {a : Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))}, (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)) a) -> (DvdNotUnit.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.commSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) a (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{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 (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) => (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) -> B) ([anonymous].{u1, u1, u2} A (Polynomial.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) B (CommRing.toCommSemiring.{u1} A _inst_1) (Polynomial.semiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Ring.toSemiring.{u2} B _inst_2) (Polynomial.algebraOfAlgebra.{u1, u1} A A (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)) (Algebra.id.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) _inst_3) (Polynomial.aeval.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2) _inst_3 x) a) (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 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} {a : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))}, (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Polynomial.Monic.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) a) -> (DvdNotUnit.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toCommMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.commSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) a (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x)) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (fun (_x : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (SMulZeroClass.toSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) (Module.toDistribMulAction.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Algebra.toModule.{u2, u2} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (Module.toDistribMulAction.{u2, u1} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{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 (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3 (AlgHom.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} A (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) B (CommRing.toCommSemiring.{u2} A _inst_1) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Ring.toSemiring.{u1} B _inst_2) (Polynomial.algebraOfAlgebra.{u2, u2} A A (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (Algebra.id.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) _inst_3))))) (Polynomial.aeval.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2) _inst_3 x) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) (Ring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) => B) a) _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align minpoly.aeval_ne_zero_of_dvd_not_unit_minpoly minpoly.aeval_ne_zero_of_dvdNotUnit_minpolyₓ'. -/
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
 theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (hamonic : a.Monic)
     (hdvd : DvdNotUnit a (minpoly A x)) : Polynomial.aeval x a ≠ 0 :=
@@ -246,6 +334,12 @@ theorem aeval_ne_zero_of_dvdNotUnit_minpoly {a : A[X]} (hx : IsIntegral A x) (ha
 
 variable [IsDomain A] [IsDomain B]
 
+/- warning: minpoly.irreducible -> minpoly.irreducible is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : Ring.{u2} B] [_inst_3 : Algebra.{u1, u2} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} B _inst_2)] {x : B} [_inst_4 : IsDomain.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))] [_inst_5 : IsDomain.{u2} B (Ring.toSemiring.{u2} B _inst_2)], (IsIntegral.{u1, u2} A B _inst_1 _inst_2 _inst_3 x) -> (Irreducible.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (Polynomial.ring.{u1} A (CommRing.toRing.{u1} A _inst_1))) (minpoly.{u1, u2} A B _inst_1 _inst_2 _inst_3 x))
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : Ring.{u1} B] [_inst_3 : Algebra.{u2, u1} A B (CommRing.toCommSemiring.{u2} A _inst_1) (Ring.toSemiring.{u1} B _inst_2)] {x : B} [_inst_4 : IsDomain.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))] [_inst_5 : IsDomain.{u1} B (Ring.toSemiring.{u1} B _inst_2)], (IsIntegral.{u2, u1} A B _inst_1 _inst_2 _inst_3 x) -> (Irreducible.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (MonoidWithZero.toMonoid.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Polynomial.semiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (minpoly.{u2, u1} A B _inst_1 _inst_2 _inst_3 x))
+Case conversion may be inaccurate. Consider using '#align minpoly.irreducible minpoly.irreducibleₓ'. -/
 /-- A minimal polynomial is irreducible. -/
 theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) :=
   by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
 
 ! This file was ported from Lean 3 source module field_theory.minpoly.basic
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
+! leanprover-community/mathlib commit df0098f0db291900600f32070f6abb3e178be2ba
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -24,7 +24,7 @@ open Classical Polynomial
 
 open Polynomial Set Function
 
-variable {A B : Type _}
+variable {A B B' : Type _}
 
 section MinPolyDef
 
@@ -49,7 +49,7 @@ namespace minpoly
 
 section Ring
 
-variable [CommRing A] [Ring B] [Algebra A B]
+variable [CommRing A] [Ring B] [Ring B'] [Algebra A B] [Algebra A B']
 
 variable {x : B}
 
@@ -70,6 +70,18 @@ theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
   dif_neg hx
 #align minpoly.eq_zero minpoly.eq_zero
 
+theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
+    minpoly A (f x) = minpoly A x :=
+  by
+  refine' dif_ctx_congr (isIntegral_algHom_iff _ hf) (fun _ => _) fun _ => rfl
+  simp_rw [← Polynomial.aeval_def, aeval_alg_hom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
+#align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
+
+@[simp]
+theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
+  minpoly_algHom (f : B →ₐ[A] B') f.Injective x
+#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquiv
+
 variable (A x)
 
 /-- An element is a root of its minimal polynomial. -/
Diff
@@ -4,11 +4,10 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
 
 ! This file was ported from Lean 3 source module field_theory.minpoly.basic
-! leanprover-community/mathlib commit 0a6c26ee8a47bd28d7b0bf45ad459eb266e3da48
+! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
 ! 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.RingTheory.IntegralClosure
 
 /-!
Diff
@@ -145,7 +145,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     by
     have hr0 : r ≠ 0 := by
       rintro rfl
-      exact NeZero hx (mul_zero p ▸ hr)
+      exact NeZero hx (MulZeroClass.mul_zero p ▸ hr)
     apply_fun nat_degree  at hr
     rw [hm.nat_degree_mul' hr0] at hr
     apply Nat.le_of_add_le_add_left
Diff
@@ -199,7 +199,7 @@ theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
 theorem eq_x_sub_c_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
-    minpoly A (algebraMap A B a) = x - c a :=
+    minpoly A (algebraMap A B a) = X - C a :=
   by
   nontriviality A
   refine' (unique' A _ (monic_X_sub_C a) _ _).symm

Changes in mathlib4

mathlib3
mathlib4
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
@@ -144,7 +144,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   obtain h | h := hl _ ((minpoly A x).degree_modByMonic_lt hm)
   swap
   · exact (h <| (aeval_modByMonic_eq_self_of_root hm hp).trans <| aeval A x).elim
-  obtain ⟨r, hr⟩ := (dvd_iff_modByMonic_eq_zero hm).1 h
+  obtain ⟨r, hr⟩ := (modByMonic_eq_zero_iff_dvd hm).1 h
   rw [hr]
   have hlead := congr_arg leadingCoeff hr
   rw [mul_comm, leadingCoeff_mul_monic hm, (monic hx).leadingCoeff] at hlead
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
@@ -46,7 +46,6 @@ namespace minpoly
 section Ring
 
 variable [CommRing A] [Ring B] [Ring B'] [Algebra A B] [Algebra A B']
-
 variable {x : B}
 
 /-- A minimal polynomial is monic. -/
@@ -182,7 +181,6 @@ variable [CommRing A]
 section Ring
 
 variable [Ring B] [Algebra A B]
-
 variable {x : B}
 
 /-- The degree of a minimal polynomial, as a natural number, is positive. -/
@@ -249,7 +247,6 @@ end Ring
 section IsDomain
 
 variable [Ring B] [Algebra A B]
-
 variable {x : B}
 
 /-- If `a` strictly divides the minimal polynomial of `x`, then `x` cannot be a root for `a`. -/
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
@@ -17,7 +17,8 @@ such as irreducibility under the assumption `B` is a domain.
 -/
 
 
-open Classical Polynomial Set Function
+open scoped Classical
+open Polynomial Set Function
 
 variable {A B B' : Type*}
 
feat(minpoly): equivalent conditions for degree = 1 or ≥ 2 (#9479)

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -200,6 +200,34 @@ theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A
   natDegree_pos_iff_degree_pos.mp (natDegree_pos hx)
 #align minpoly.degree_pos minpoly.degree_pos
 
+section
+variable [Nontrivial B]
+
+open Polynomial in
+theorem degree_eq_one_iff : (minpoly A x).degree = 1 ↔ x ∈ (algebraMap A B).range := by
+  refine ⟨minpoly.mem_range_of_degree_eq_one _ _, ?_⟩
+  rintro ⟨x, rfl⟩
+  haveI := Module.nontrivial A B
+  exact (degree_X_sub_C x ▸ minpoly.min A (algebraMap A B x) (monic_X_sub_C x) (by simp)).antisymm
+    (Nat.WithBot.add_one_le_of_lt <| minpoly.degree_pos isIntegral_algebraMap)
+
+theorem natDegree_eq_one_iff :
+    (minpoly A x).natDegree = 1 ↔ x ∈ (algebraMap A B).range := by
+  rw [← Polynomial.degree_eq_iff_natDegree_eq_of_pos zero_lt_one]
+  exact degree_eq_one_iff
+
+theorem two_le_natDegree_iff (int : IsIntegral A x) :
+    2 ≤ (minpoly A x).natDegree ↔ x ∉ (algebraMap A B).range := by
+  rw [iff_not_comm, ← natDegree_eq_one_iff, not_le]
+  exact ⟨fun h ↦ h.trans_lt one_lt_two, fun h ↦ by linarith only [minpoly.natDegree_pos int, h]⟩
+
+theorem two_le_natDegree_subalgebra {B} [CommRing B] [Algebra A B] [Nontrivial B]
+    {S : Subalgebra A B} {x : B} (int : IsIntegral S x) : 2 ≤ (minpoly S x).natDegree ↔ x ∉ S := by
+  rw [two_le_natDegree_iff int, Iff.not]
+  apply Set.ext_iff.mp Subtype.range_val_subtype
+
+end
+
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
 then the minimal polynomial of `algebraMap A B a` is `X - C a`. -/
 theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
chore: remove uses of cases' (#9171)

I literally went through and regex'd some uses of cases', replacing them with rcases; this is meant to be a low effort PR as I hope that tools can do this in the future.

rcases is an easier replacement than cases, though with better tools we could in future do a second pass converting simple rcases added here (and existing ones) to cases.

Diff
@@ -166,7 +166,7 @@ theorem subsingleton [Subsingleton B] : minpoly A x = 1 := by
   nontriviality A
   have := minpoly.min A x monic_one (Subsingleton.elim _ _)
   rw [degree_one] at this
-  cases' le_or_lt (minpoly A x).degree 0 with h h
+  rcases le_or_lt (minpoly A x).degree 0 with h | h
   · rwa [(monic ⟨1, monic_one, by simp [eq_iff_true_of_subsingleton]⟩ :
            (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
   · exact (this.not_lt h).elim
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -244,7 +244,7 @@ variable [IsDomain A] [IsDomain B]
 theorem irreducible (hx : IsIntegral A x) : Irreducible (minpoly A x) := by
   refine' (irreducible_of_monic (monic hx) <| ne_one A x).2 fun f g hf hg he => _
   rw [← hf.isUnit_iff, ← hg.isUnit_iff]
-  by_contra' h
+  by_contra! h
   have heval := congr_arg (Polynomial.aeval x) he
   rw [aeval A x, aeval_mul, mul_eq_zero] at heval
   cases' heval with heval heval
perf(FunLike.Basic): beta reduce CoeFun.coe (#7905)

This eliminates (fun a ↦ β) α in the type when applying a FunLike.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -86,11 +86,9 @@ variable (A x)
 @[simp]
 theorem aeval : aeval x (minpoly A x) = 0 := by
   delta minpoly
-  split_ifs with hx -- Porting note: `split_ifs` doesn't remove the `if`s
-  · rw [dif_pos hx]
-    exact (degree_lt_wf.min_mem _ hx).2
-  · rw [dif_neg hx]
-    exact aeval_zero _
+  split_ifs with hx
+  · exact (degree_lt_wf.min_mem _ hx).2
+  · exact aeval_zero _
 #align minpoly.aeval minpoly.aeval
 
 /-- A minimal polynomial is not `1`. -/
fix: attribute [simp] ... in -> attribute [local simp] ... in (#7678)

Mathlib.Logic.Unique contains the line attribute [simp] eq_iff_true_of_subsingleton in ...:

https://github.com/leanprover-community/mathlib4/blob/96a11c7aac574c00370c2b3dab483cb676405c5d/Mathlib/Logic/Unique.lean#L255-L256

Despite what the in part may imply, this adds the lemma to the simp set "globally", including for downstream files; it is likely that attribute [local simp] eq_iff_true_of_subsingleton in ... was meant instead (or maybe scoped simp, but I think "scoped" refers to the current namespace). Indeed, the relevant lemma is not marked with @[simp] for possible slowness: https://github.com/leanprover/std4/blob/846e9e1d6bb534774d1acd2dc430e70987da3c18/Std/Logic.lean#L749. Adding it to the simp set causes the example at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp to slow down.

This PR changes this and fixes the relevant downstream simps. There was also one ocurrence of attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in in Mathlib.CategoryTheory.Monoidal.Subcategory but that was much easier to fix.

https://github.com/leanprover-community/mathlib4/blob/bc49eb9ba756a233370b4b68bcdedd60402f71ed/Mathlib/CategoryTheory/Monoidal/Subcategory.lean#L118-L119

Diff
@@ -169,7 +169,8 @@ theorem subsingleton [Subsingleton B] : minpoly A x = 1 := by
   have := minpoly.min A x monic_one (Subsingleton.elim _ _)
   rw [degree_one] at this
   cases' le_or_lt (minpoly A x).degree 0 with h h
-  · rwa [(monic ⟨1, monic_one, by simp⟩ : (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
+  · rwa [(monic ⟨1, monic_one, by simp [eq_iff_true_of_subsingleton]⟩ :
+           (minpoly A x).Monic).degree_le_zero_iff_eq_one] at h
   · exact (this.not_lt h).elim
 #align minpoly.subsingleton minpoly.subsingleton
 
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
@@ -64,16 +64,21 @@ theorem eq_zero (hx : ¬IsIntegral A x) : minpoly A x = 0 :=
   dif_neg hx
 #align minpoly.eq_zero minpoly.eq_zero
 
-theorem minpoly_algHom (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
+theorem algHom_eq (f : B →ₐ[A] B') (hf : Function.Injective f) (x : B) :
     minpoly A (f x) = minpoly A x := by
   refine' dif_ctx_congr (isIntegral_algHom_iff _ hf) (fun _ => _) fun _ => rfl
   simp_rw [← Polynomial.aeval_def, aeval_algHom, AlgHom.comp_apply, _root_.map_eq_zero_iff f hf]
-#align minpoly.minpoly_alg_hom minpoly.minpoly_algHom
+#align minpoly.minpoly_alg_hom minpoly.algHom_eq
+
+theorem algebraMap_eq {B} [CommRing B] [Algebra A B] [Algebra B B'] [IsScalarTower A B B']
+    (h : Function.Injective (algebraMap B B')) (x : B) :
+    minpoly A (algebraMap B B' x) = minpoly A x :=
+  algHom_eq (IsScalarTower.toAlgHom A B B') h x
 
 @[simp]
-theorem minpoly_algEquiv (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
-  minpoly_algHom (f : B →ₐ[A] B') f.injective x
-#align minpoly.minpoly_alg_equiv minpoly.minpoly_algEquiv
+theorem algEquiv_eq (f : B ≃ₐ[A] B') (x : B) : minpoly A (f x) = minpoly A x :=
+  algHom_eq (f : B →ₐ[A] B') f.injective x
+#align minpoly.minpoly_alg_equiv minpoly.algEquiv_eq
 
 variable (A x)
 
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
@@ -148,7 +148,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
   have : natDegree r ≤ 0 := by
     have hr0 : r ≠ 0 := by
       rintro rfl
-      exact ne_zero hx (MulZeroClass.mul_zero p ▸ hr)
+      exact ne_zero hx (mul_zero p ▸ hr)
     apply_fun natDegree at hr
     rw [hm.natDegree_mul' hr0] at hr
     apply Nat.le_of_add_le_add_left
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
@@ -19,7 +19,7 @@ such as irreducibility under the assumption `B` is a domain.
 
 open Classical Polynomial Set Function
 
-variable {A B B' : Type _}
+variable {A B B' : Type*}
 
 section MinPolyDef
 
@@ -95,7 +95,7 @@ theorem ne_one [Nontrivial B] : minpoly A x ≠ 1 := by
   simpa using congr_arg (Polynomial.aeval x) h
 #align minpoly.ne_one minpoly.ne_one
 
-theorem map_ne_one [Nontrivial B] {R : Type _} [Semiring R] [Nontrivial R] (f : A →+* R) :
+theorem map_ne_one [Nontrivial B] {R : Type*} [Semiring R] [Nontrivial R] (f : A →+* R) :
     (minpoly A x).map f ≠ 1 := by
   by_cases hx : IsIntegral A x
   · exact mt ((monic hx).eq_one_of_map_eq_one f) (ne_one A x)
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,14 +2,11 @@
 Copyright (c) 2019 Chris Hughes. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Chris Hughes, Johan Commelin
-
-! This file was ported from Lean 3 source module field_theory.minpoly.basic
-! leanprover-community/mathlib commit df0098f0db291900600f32070f6abb3e178be2ba
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.RingTheory.IntegralClosure
 
+#align_import field_theory.minpoly.basic from "leanprover-community/mathlib"@"df0098f0db291900600f32070f6abb3e178be2ba"
+
 /-!
 # Minimal polynomials
 
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
@@ -152,7 +152,7 @@ theorem unique' {p : A[X]} (hm : p.Monic) (hp : Polynomial.aeval x p = 0)
     have hr0 : r ≠ 0 := by
       rintro rfl
       exact ne_zero hx (MulZeroClass.mul_zero p ▸ hr)
-    apply_fun natDegree  at hr
+    apply_fun natDegree at hr
     rw [hm.natDegree_mul' hr0] at hr
     apply Nat.le_of_add_le_add_left
     rw [add_zero]
@@ -209,7 +209,7 @@ theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMa
   simp_rw [or_iff_not_imp_left]
   intro q hl h0
   rw [← natDegree_lt_natDegree_iff h0, natDegree_X_sub_C, Nat.lt_one_iff] at hl
-  rw [eq_C_of_natDegree_eq_zero hl] at h0⊢
+  rw [eq_C_of_natDegree_eq_zero hl] at h0 ⊢
   rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
 set_option linter.uppercaseLean3 false in
 #align minpoly.eq_X_sub_C_of_algebra_map_inj minpoly.eq_X_sub_C_of_algebraMap_inj
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -15,7 +15,7 @@ import Mathlib.RingTheory.IntegralClosure
 
 This file defines the minimal polynomial of an element `x` of an `A`-algebra `B`,
 under the assumption that x is integral over `A`, and derives some basic properties
-such as ireducibility under the assumption `B` is a domain.
+such as irreducibility under the assumption `B` is a domain.
 
 -/
 
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -32,7 +32,7 @@ variable (A) [CommRing A] [Ring B] [Algebra A B]
 
 The minimal polynomial `minpoly A x` of `x`
 is a monic polynomial with coefficients in `A` of smallest degree that has `x` as its root,
-if such exists (`is_integral A x`) or zero otherwise.
+if such exists (`IsIntegral A x`) or zero otherwise.
 
 For example, if `V` is a `𝕜`-vector space for some field `𝕜` and `f : V →ₗ[𝕜] V` then
 the minimal polynomial of `f` is `minpoly 𝕜 f`.
@@ -200,7 +200,7 @@ theorem degree_pos [Nontrivial B] (hx : IsIntegral A x) : 0 < degree (minpoly A
 #align minpoly.degree_pos minpoly.degree_pos
 
 /-- If `B/A` is an injective ring extension, and `a` is an element of `A`,
-then the minimal polynomial of `algebra_map A B a` is `X - C a`. -/
+then the minimal polynomial of `algebraMap A B a` is `X - C a`. -/
 theorem eq_X_sub_C_of_algebraMap_inj (a : A) (hf : Function.Injective (algebraMap A B)) :
     minpoly A (algebraMap A B a) = X - C a := by
   nontriviality A
feat: port FieldTheory.Minpoly.Basic (#4216)

Dependencies 10 + 626

627 files ported (98.4%)
263886 lines ported (98.7%)
Show graph

The unported dependencies are