linear_algebra.annihilating_polynomial ⟷ Mathlib.LinearAlgebra.AnnihilatingPolynomial

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -204,7 +204,7 @@ theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
   by
   by_cases h : p = 0
   Β· rwa [h, ann_ideal_generator_eq_zero_iff, ← p_gen, ideal.span_singleton_eq_bot.mpr]
-  Β· rw [← span_singleton_ann_ideal_generator, Ideal.span_singleton_eq_span_singleton] at p_gen 
+  Β· rw [← span_singleton_ann_ideal_generator, Ideal.span_singleton_eq_span_singleton] at p_gen
     rw [eq_comm]
     apply eq_of_monic_of_associated p_monic _ p_gen
     Β· apply monic_ann_ideal_generator _ _ ((Associated.ne_zero_iff p_gen).mp h)
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Justin Thomas. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Justin Thomas
 -/
-import Mathbin.FieldTheory.Minpoly.Field
-import Mathbin.RingTheory.PrincipalIdealDomain
+import FieldTheory.Minpoly.Field
+import RingTheory.PrincipalIdealDomain
 
 #align_import linear_algebra.annihilating_polynomial from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Justin Thomas. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Justin Thomas
-
-! This file was ported from Lean 3 source module linear_algebra.annihilating_polynomial
-! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.FieldTheory.Minpoly.Field
 import Mathbin.RingTheory.PrincipalIdealDomain
 
+#align_import linear_algebra.annihilating_polynomial from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
+
 /-!
 # Annihilating Ideal
 
Diff
@@ -64,11 +64,13 @@ noncomputable def annIdeal (a : A) : Ideal R[X] :=
 
 variable {R}
 
+#print Polynomial.mem_annIdeal_iff_aeval_eq_zero /-
 /-- It is useful to refer to ideal membership sometimes
  and the annihilation condition other times. -/
 theorem mem_annIdeal_iff_aeval_eq_zero {a : A} {p : R[X]} : p ∈ annIdeal R a ↔ aeval a p = 0 :=
   Iff.rfl
 #align polynomial.mem_ann_ideal_iff_aeval_eq_zero Polynomial.mem_annIdeal_iff_aeval_eq_zero
+-/
 
 end Semiring
 
@@ -97,14 +99,17 @@ section
 
 variable {π•œ}
 
+#print Polynomial.annIdealGenerator_eq_zero_iff /-
 @[simp]
 theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔ annIdeal π•œ a = βŠ₯ := by
   simp only [ann_ideal_generator, mul_eq_zero, is_principal.eq_bot_iff_generator_eq_zero,
     Polynomial.C_eq_zero, inv_eq_zero, Polynomial.leadingCoeff_eq_zero, or_self_iff]
 #align polynomial.ann_ideal_generator_eq_zero_iff Polynomial.annIdealGenerator_eq_zero_iff
+-/
 
 end
 
+#print Polynomial.span_singleton_annIdealGenerator /-
 /-- `ann_ideal_generator π•œ a` is indeed a generator. -/
 @[simp]
 theorem span_singleton_annIdealGenerator (a : A) :
@@ -119,22 +124,29 @@ theorem span_singleton_annIdealGenerator (a : A) :
     apply polynomial.leading_coeff_eq_zero.not.mpr
     apply (mul_ne_zero_iff.mp h).1
 #align polynomial.span_singleton_ann_ideal_generator Polynomial.span_singleton_annIdealGenerator
+-/
 
+#print Polynomial.annIdealGenerator_mem /-
 /-- The annihilating ideal generator is a member of the annihilating ideal. -/
 theorem annIdealGenerator_mem (a : A) : annIdealGenerator π•œ a ∈ annIdeal π•œ a :=
   Ideal.mul_mem_right _ _ (Submodule.IsPrincipal.generator_mem _)
 #align polynomial.ann_ideal_generator_mem Polynomial.annIdealGenerator_mem
+-/
 
+#print Polynomial.mem_iff_eq_smul_annIdealGenerator /-
 theorem mem_iff_eq_smul_annIdealGenerator {p : π•œ[X]} (a : A) :
     p ∈ annIdeal π•œ a ↔ βˆƒ s : π•œ[X], p = s β€’ annIdealGenerator π•œ a := by
   simp_rw [@eq_comm _ p, ← mem_span_singleton, ← span_singleton_ann_ideal_generator π•œ a, Ideal.span]
 #align polynomial.mem_iff_eq_smul_ann_ideal_generator Polynomial.mem_iff_eq_smul_annIdealGenerator
+-/
 
+#print Polynomial.monic_annIdealGenerator /-
 /-- The generator we chose for the annihilating ideal is monic when the ideal is non-zero. -/
 theorem monic_annIdealGenerator (a : A) (hg : annIdealGenerator π•œ a β‰  0) :
     Monic (annIdealGenerator π•œ a) :=
   monic_mul_leadingCoeff_inv (mul_ne_zero_iff.mp hg).1
 #align polynomial.monic_ann_ideal_generator Polynomial.monic_annIdealGenerator
+-/
 
 /-! We are working toward showing the generator of the annihilating ideal
 in the field case is the minimal polynomial. We are going to use a uniqueness
@@ -143,26 +155,33 @@ theorem of the minimal polynomial.
 This is the first condition: it must annihilate the original element `a : A`. -/
 
 
+#print Polynomial.annIdealGenerator_aeval_eq_zero /-
 theorem annIdealGenerator_aeval_eq_zero (a : A) : aeval a (annIdealGenerator π•œ a) = 0 :=
   mem_annIdeal_iff_aeval_eq_zero.mp (annIdealGenerator_mem π•œ a)
 #align polynomial.ann_ideal_generator_aeval_eq_zero Polynomial.annIdealGenerator_aeval_eq_zero
+-/
 
 variable {π•œ}
 
+#print Polynomial.mem_iff_annIdealGenerator_dvd /-
 theorem mem_iff_annIdealGenerator_dvd {p : π•œ[X]} {a : A} :
     p ∈ annIdeal π•œ a ↔ annIdealGenerator π•œ a ∣ p := by
   rw [← Ideal.mem_span_singleton, span_singleton_ann_ideal_generator]
 #align polynomial.mem_iff_ann_ideal_generator_dvd Polynomial.mem_iff_annIdealGenerator_dvd
+-/
 
+#print Polynomial.degree_annIdealGenerator_le_of_mem /-
 /-- The generator of the annihilating ideal has minimal degree among
  the non-zero members of the annihilating ideal -/
 theorem degree_annIdealGenerator_le_of_mem (a : A) (p : π•œ[X]) (hp : p ∈ annIdeal π•œ a)
     (hpn0 : p β‰  0) : degree (annIdealGenerator π•œ a) ≀ degree p :=
   degree_le_of_dvd (mem_iff_annIdealGenerator_dvd.1 hp) hpn0
 #align polynomial.degree_ann_ideal_generator_le_of_mem Polynomial.degree_annIdealGenerator_le_of_mem
+-/
 
 variable (π•œ)
 
+#print Polynomial.annIdealGenerator_eq_minpoly /-
 /-- The generator of the annihilating ideal is the minimal polynomial. -/
 theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpoly π•œ a :=
   by
@@ -178,7 +197,9 @@ theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpol
         degree_ann_ideal_generator_le_of_mem a q (mem_ann_ideal_iff_aeval_eq_zero.mpr hq)
           q_monic.NeZero
 #align polynomial.ann_ideal_generator_eq_minpoly Polynomial.annIdealGenerator_eq_minpoly
+-/
 
+#print Polynomial.monic_generator_eq_minpoly /-
 /-- If a monic generates the annihilating ideal, it must match our choice
  of the annihilating ideal generator. -/
 theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
@@ -191,6 +212,7 @@ theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
     apply eq_of_monic_of_associated p_monic _ p_gen
     Β· apply monic_ann_ideal_generator _ _ ((Associated.ne_zero_iff p_gen).mp h)
 #align polynomial.monic_generator_eq_minpoly Polynomial.monic_generator_eq_minpoly
+-/
 
 end Field
 
Diff
@@ -186,7 +186,7 @@ theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
   by
   by_cases h : p = 0
   Β· rwa [h, ann_ideal_generator_eq_zero_iff, ← p_gen, ideal.span_singleton_eq_bot.mpr]
-  Β· rw [← span_singleton_ann_ideal_generator, Ideal.span_singleton_eq_span_singleton] at p_gen
+  Β· rw [← span_singleton_ann_ideal_generator, Ideal.span_singleton_eq_span_singleton] at p_gen 
     rw [eq_comm]
     apply eq_of_monic_of_associated p_monic _ p_gen
     Β· apply monic_ann_ideal_generator _ _ ((Associated.ne_zero_iff p_gen).mp h)
Diff
@@ -143,11 +143,9 @@ theorem of the minimal polynomial.
 This is the first condition: it must annihilate the original element `a : A`. -/
 
 
-#print Polynomial.annIdealGenerator_aeval_eq_zero /-
 theorem annIdealGenerator_aeval_eq_zero (a : A) : aeval a (annIdealGenerator π•œ a) = 0 :=
   mem_annIdeal_iff_aeval_eq_zero.mp (annIdealGenerator_mem π•œ a)
 #align polynomial.ann_ideal_generator_aeval_eq_zero Polynomial.annIdealGenerator_aeval_eq_zero
--/
 
 variable {π•œ}
 
Diff
@@ -40,7 +40,7 @@ there are some common specializations which may be more familiar.
 -/
 
 
-open Polynomial
+open scoped Polynomial
 
 namespace Polynomial
 
Diff
@@ -64,9 +64,6 @@ noncomputable def annIdeal (a : A) : Ideal R[X] :=
 
 variable {R}
 
-/- warning: polynomial.mem_ann_ideal_iff_aeval_eq_zero -> Polynomial.mem_annIdeal_iff_aeval_eq_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align polynomial.mem_ann_ideal_iff_aeval_eq_zero Polynomial.mem_annIdeal_iff_aeval_eq_zeroβ‚“'. -/
 /-- It is useful to refer to ideal membership sometimes
  and the annihilation condition other times. -/
 theorem mem_annIdeal_iff_aeval_eq_zero {a : A} {p : R[X]} : p ∈ annIdeal R a ↔ aeval a p = 0 :=
@@ -100,12 +97,6 @@ section
 
 variable {π•œ}
 
-/- warning: polynomial.ann_ideal_generator_eq_zero_iff -> Polynomial.annIdealGenerator_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {a : A}, Iff (Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) (Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a) (Bot.bot.{u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Submodule.hasBot.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))))
-but is expected to have type
-  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {a : A}, Iff (Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a) (Bot.bot.{u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Submodule.instBotSubmodule.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_eq_zero_iff Polynomial.annIdealGenerator_eq_zero_iffβ‚“'. -/
 @[simp]
 theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔ annIdeal π•œ a = βŠ₯ := by
   simp only [ann_ideal_generator, mul_eq_zero, is_principal.eq_bot_iff_generator_eq_zero,
@@ -114,12 +105,6 @@ theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔
 
 end
 
-/- warning: polynomial.span_singleton_ann_ideal_generator -> Polynomial.span_singleton_annIdealGenerator is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Ideal.span.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Singleton.singleton.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Set.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Set.hasSingleton.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Ideal.span.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Singleton.singleton.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Set.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Set.instSingletonSet.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)
-Case conversion may be inaccurate. Consider using '#align polynomial.span_singleton_ann_ideal_generator Polynomial.span_singleton_annIdealGeneratorβ‚“'. -/
 /-- `ann_ideal_generator π•œ a` is indeed a generator. -/
 @[simp]
 theorem span_singleton_annIdealGenerator (a : A) :
@@ -135,34 +120,16 @@ theorem span_singleton_annIdealGenerator (a : A) :
     apply (mul_ne_zero_iff.mp h).1
 #align polynomial.span_singleton_ann_ideal_generator Polynomial.span_singleton_annIdealGenerator
 
-/- warning: polynomial.ann_ideal_generator_mem -> Polynomial.annIdealGenerator_mem is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)
-Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_mem Polynomial.annIdealGenerator_memβ‚“'. -/
 /-- The annihilating ideal generator is a member of the annihilating ideal. -/
 theorem annIdealGenerator_mem (a : A) : annIdealGenerator π•œ a ∈ annIdeal π•œ a :=
   Ideal.mul_mem_right _ _ (Submodule.IsPrincipal.generator_mem _)
 #align polynomial.ann_ideal_generator_mem Polynomial.annIdealGenerator_mem
 
-/- warning: polynomial.mem_iff_eq_smul_ann_ideal_generator -> Polynomial.mem_iff_eq_smul_annIdealGenerator is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))} (a : A), Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) (Exists.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (fun (s : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) => Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) p (SMul.smul.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Mul.toSMul.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.mul'.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))))) s (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))))
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))} (a : A), Iff (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) (Exists.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (fun (s : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) => Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) p (HSMul.hSMul.{u2, u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (instHSMul.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Algebra.id.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))))) s (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))))
-Case conversion may be inaccurate. Consider using '#align polynomial.mem_iff_eq_smul_ann_ideal_generator Polynomial.mem_iff_eq_smul_annIdealGeneratorβ‚“'. -/
 theorem mem_iff_eq_smul_annIdealGenerator {p : π•œ[X]} (a : A) :
     p ∈ annIdeal π•œ a ↔ βˆƒ s : π•œ[X], p = s β€’ annIdealGenerator π•œ a := by
   simp_rw [@eq_comm _ p, ← mem_span_singleton, ← span_singleton_ann_ideal_generator π•œ a, Ideal.span]
 #align polynomial.mem_iff_eq_smul_ann_ideal_generator Polynomial.mem_iff_eq_smul_annIdealGenerator
 
-/- warning: polynomial.monic_ann_ideal_generator -> Polynomial.monic_annIdealGenerator is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), (Ne.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) -> (Polynomial.Monic.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), (Ne.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) -> (Polynomial.Monic.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))
-Case conversion may be inaccurate. Consider using '#align polynomial.monic_ann_ideal_generator Polynomial.monic_annIdealGeneratorβ‚“'. -/
 /-- The generator we chose for the annihilating ideal is monic when the ideal is non-zero. -/
 theorem monic_annIdealGenerator (a : A) (hg : annIdealGenerator π•œ a β‰  0) :
     Monic (annIdealGenerator π•œ a) :=
@@ -184,23 +151,11 @@ theorem annIdealGenerator_aeval_eq_zero (a : A) : aeval a (annIdealGenerator 
 
 variable {π•œ}
 
-/- warning: polynomial.mem_iff_ann_ideal_generator_dvd -> Polynomial.mem_iff_annIdealGenerator_dvd is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))} {a : A}, Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) (Dvd.Dvd.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (semigroupDvd.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.commRing.{u1} π•œ (EuclideanDomain.toCommRing.{u1} π•œ (Field.toEuclideanDomain.{u1} π•œ _inst_1))))))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) p)
-but is expected to have type
-  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))} {a : A}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) (Dvd.dvd.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (semigroupDvd.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commRing.{u2} π•œ (EuclideanDomain.toCommRing.{u2} π•œ (Field.toEuclideanDomain.{u2} π•œ _inst_1))))))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) p)
-Case conversion may be inaccurate. Consider using '#align polynomial.mem_iff_ann_ideal_generator_dvd Polynomial.mem_iff_annIdealGenerator_dvdβ‚“'. -/
 theorem mem_iff_annIdealGenerator_dvd {p : π•œ[X]} {a : A} :
     p ∈ annIdeal π•œ a ↔ annIdealGenerator π•œ a ∣ p := by
   rw [← Ideal.mem_span_singleton, span_singleton_ann_ideal_generator]
 #align polynomial.mem_iff_ann_ideal_generator_dvd Polynomial.mem_iff_annIdealGenerator_dvd
 
-/- warning: polynomial.degree_ann_ideal_generator_le_of_mem -> Polynomial.degree_annIdealGenerator_le_of_mem is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A) (p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))), (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) -> (Ne.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) -> (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} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a)) (Polynomial.degree.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) p))
-but is expected to have type
-  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A) (p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))), (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) -> (Ne.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) -> (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} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a)) (Polynomial.degree.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) p))
-Case conversion may be inaccurate. Consider using '#align polynomial.degree_ann_ideal_generator_le_of_mem Polynomial.degree_annIdealGenerator_le_of_memβ‚“'. -/
 /-- The generator of the annihilating ideal has minimal degree among
  the non-zero members of the annihilating ideal -/
 theorem degree_annIdealGenerator_le_of_mem (a : A) (p : π•œ[X]) (hp : p ∈ annIdeal π•œ a)
@@ -210,12 +165,6 @@ theorem degree_annIdealGenerator_le_of_mem (a : A) (p : π•œ[X]) (hp : p ∈ ann
 
 variable (π•œ)
 
-/- warning: polynomial.ann_ideal_generator_eq_minpoly -> Polynomial.annIdealGenerator_eq_minpoly is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (minpoly.{u1, u2} π•œ A (EuclideanDomain.toCommRing.{u1} π•œ (Field.toEuclideanDomain.{u1} π•œ _inst_1)) _inst_2 _inst_3 a)
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (minpoly.{u2, u1} π•œ A (EuclideanDomain.toCommRing.{u2} π•œ (Field.toEuclideanDomain.{u2} π•œ _inst_1)) _inst_2 _inst_3 a)
-Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_eq_minpoly Polynomial.annIdealGenerator_eq_minpolyβ‚“'. -/
 /-- The generator of the annihilating ideal is the minimal polynomial. -/
 theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpoly π•œ a :=
   by
@@ -232,12 +181,6 @@ theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpol
           q_monic.NeZero
 #align polynomial.ann_ideal_generator_eq_minpoly Polynomial.annIdealGenerator_eq_minpoly
 
-/- warning: polynomial.monic_generator_eq_minpoly -> Polynomial.monic_generator_eq_minpoly is a dubious translation:
-lean 3 declaration is
-  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A) (p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))), (Polynomial.Monic.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) p) -> (Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Ideal.span.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Singleton.singleton.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Set.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Set.hasSingleton.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) p)) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) -> (Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) p)
-but is expected to have type
-  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A) (p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))), (Polynomial.Monic.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) p) -> (Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Ideal.span.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Singleton.singleton.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Set.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Set.instSingletonSet.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) p)) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) -> (Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) p)
-Case conversion may be inaccurate. Consider using '#align polynomial.monic_generator_eq_minpoly Polynomial.monic_generator_eq_minpolyβ‚“'. -/
 /-- If a monic generates the annihilating ideal, it must match our choice
  of the annihilating ideal generator. -/
 theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
Diff
@@ -65,10 +65,7 @@ noncomputable def annIdeal (a : A) : Ideal R[X] :=
 variable {R}
 
 /- warning: polynomial.mem_ann_ideal_iff_aeval_eq_zero -> Polynomial.mem_annIdeal_iff_aeval_eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)}, Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.setLike.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) p (Polynomial.annIdeal.{u1, u2} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u2} A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (Polynomial.aeval.{u1, u2} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Submodule.setLike.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) p (Polynomial.annIdeal.{u2, u1} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1))))))) (SMulZeroClass.toSMul.{u2, u1} R A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribSMul.toSMulZeroClass.{u2, u1} R A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribMulAction.toDistribSMul.{u2, u1} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3))))) (Polynomial.aeval.{u2, u1} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) _inst_2)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align polynomial.mem_ann_ideal_iff_aeval_eq_zero Polynomial.mem_annIdeal_iff_aeval_eq_zeroβ‚“'. -/
 /-- It is useful to refer to ideal membership sometimes
  and the annihilation condition other times. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Justin Thomas
 
 ! This file was ported from Lean 3 source module linear_algebra.annihilating_polynomial
-! leanprover-community/mathlib commit d3e8e0a0237c10c2627bf52c246b15ff8e7df4c0
+! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.RingTheory.PrincipalIdealDomain
 /-!
 # Annihilating Ideal
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given a commutative ring `R` and an `R`-algebra `A`
 Every element `a : A` defines
 an ideal `polynomial.ann_ideal a βŠ† R[X]`.
Diff
@@ -65,7 +65,7 @@ variable {R}
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)}, Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.setLike.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) p (Polynomial.annIdeal.{u1, u2} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u2} A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (Polynomial.aeval.{u1, u2} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Submodule.setLike.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) p (Polynomial.annIdeal.{u2, u1} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1))))))) (SMulZeroClass.toSMul.{u2, u1} R A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribSMul.toSMulZeroClass.{u2, u1} R A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribMulAction.toDistribSMul.{u2, u1} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3))))) (Polynomial.aeval.{u2, u1} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) _inst_2)))))
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Submodule.setLike.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) p (Polynomial.annIdeal.{u2, u1} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1))))))) (SMulZeroClass.toSMul.{u2, u1} R A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribSMul.toSMulZeroClass.{u2, u1} R A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribMulAction.toDistribSMul.{u2, u1} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3))))) (Polynomial.aeval.{u2, u1} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align polynomial.mem_ann_ideal_iff_aeval_eq_zero Polynomial.mem_annIdeal_iff_aeval_eq_zeroβ‚“'. -/
 /-- It is useful to refer to ideal membership sometimes
  and the annihilation condition other times. -/
Diff
@@ -47,6 +47,7 @@ variable {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
 
 variable (R)
 
+#print Polynomial.annIdeal /-
 /-- `ann_ideal R a` is the *annihilating ideal* of all `p : R[X]` such that `p(a) = 0`.
 
 The informal notation `p(a)` stand for `polynomial.aeval a p`.
@@ -56,9 +57,16 @@ The formal definition uses the kernel of the aeval map. -/
 noncomputable def annIdeal (a : A) : Ideal R[X] :=
   ((aeval a).toRingHom : R[X] β†’+* A).ker
 #align polynomial.ann_ideal Polynomial.annIdeal
+-/
 
 variable {R}
 
+/- warning: polynomial.mem_ann_ideal_iff_aeval_eq_zero -> Polynomial.mem_annIdeal_iff_aeval_eq_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)}, Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Submodule.setLike.{u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) p (Polynomial.annIdeal.{u1, u2} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u2} A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) A _inst_1 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u1, u1} R R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)) _inst_3) (Polynomial.aeval.{u1, u2} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2] {a : A} {p : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Submodule.setLike.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Semiring.toModule.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) p (Polynomial.annIdeal.{u2, u1} R A _inst_1 _inst_2 _inst_3 a)) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1))))))) (SMulZeroClass.toSMul.{u2, u1} R A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribSMul.toSMulZeroClass.{u2, u1} R A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (DistribMulAction.toDistribSMul.{u2, u1} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)))) (Module.toDistribMulAction.{u2, u1} R A (CommSemiring.toSemiring.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (Algebra.toModule.{u2, u1} R A _inst_1 _inst_2 _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3 (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) A _inst_1 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_2 (Polynomial.algebraOfAlgebra.{u2, u2} R R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1)) _inst_3))))) (Polynomial.aeval.{u2, u1} R A _inst_1 _inst_2 _inst_3 a) p) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) => A) p) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align polynomial.mem_ann_ideal_iff_aeval_eq_zero Polynomial.mem_annIdeal_iff_aeval_eq_zeroβ‚“'. -/
 /-- It is useful to refer to ideal membership sometimes
  and the annihilation condition other times. -/
 theorem mem_annIdeal_iff_aeval_eq_zero {a : A} {p : R[X]} : p ∈ annIdeal R a ↔ aeval a p = 0 :=
@@ -75,6 +83,7 @@ variable (π•œ)
 
 open Submodule
 
+#print Polynomial.annIdealGenerator /-
 /-- `ann_ideal_generator π•œ a` is the monic generator of `ann_ideal π•œ a`
 if one exists, otherwise `0`.
 
@@ -85,11 +94,18 @@ noncomputable def annIdealGenerator (a : A) : π•œ[X] :=
   let g := IsPrincipal.generator <| annIdeal π•œ a
   g * C g.leadingCoeff⁻¹
 #align polynomial.ann_ideal_generator Polynomial.annIdealGenerator
+-/
 
 section
 
 variable {π•œ}
 
+/- warning: polynomial.ann_ideal_generator_eq_zero_iff -> Polynomial.annIdealGenerator_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {a : A}, Iff (Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) (Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a) (Bot.bot.{u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Submodule.hasBot.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))))
+but is expected to have type
+  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {a : A}, Iff (Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a) (Bot.bot.{u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Submodule.instBotSubmodule.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_eq_zero_iff Polynomial.annIdealGenerator_eq_zero_iffβ‚“'. -/
 @[simp]
 theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔ annIdeal π•œ a = βŠ₯ := by
   simp only [ann_ideal_generator, mul_eq_zero, is_principal.eq_bot_iff_generator_eq_zero,
@@ -98,6 +114,12 @@ theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔
 
 end
 
+/- warning: polynomial.span_singleton_ann_ideal_generator -> Polynomial.span_singleton_annIdealGenerator is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Ideal.span.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Singleton.singleton.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Set.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Set.hasSingleton.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Ideal.span.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Singleton.singleton.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Set.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Set.instSingletonSet.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)
+Case conversion may be inaccurate. Consider using '#align polynomial.span_singleton_ann_ideal_generator Polynomial.span_singleton_annIdealGeneratorβ‚“'. -/
 /-- `ann_ideal_generator π•œ a` is indeed a generator. -/
 @[simp]
 theorem span_singleton_annIdealGenerator (a : A) :
@@ -113,16 +135,34 @@ theorem span_singleton_annIdealGenerator (a : A) :
     apply (mul_ne_zero_iff.mp h).1
 #align polynomial.span_singleton_ann_ideal_generator Polynomial.span_singleton_annIdealGenerator
 
+/- warning: polynomial.ann_ideal_generator_mem -> Polynomial.annIdealGenerator_mem is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)
+Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_mem Polynomial.annIdealGenerator_memβ‚“'. -/
 /-- The annihilating ideal generator is a member of the annihilating ideal. -/
 theorem annIdealGenerator_mem (a : A) : annIdealGenerator π•œ a ∈ annIdeal π•œ a :=
   Ideal.mul_mem_right _ _ (Submodule.IsPrincipal.generator_mem _)
 #align polynomial.ann_ideal_generator_mem Polynomial.annIdealGenerator_mem
 
+/- warning: polynomial.mem_iff_eq_smul_ann_ideal_generator -> Polynomial.mem_iff_eq_smul_annIdealGenerator is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))} (a : A), Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) (Exists.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (fun (s : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) => Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) p (SMul.smul.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Mul.toSMul.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.mul'.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))))) s (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))))
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))} (a : A), Iff (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) (Exists.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (fun (s : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) => Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) p (HSMul.hSMul.{u2, u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (instHSMul.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Algebra.id.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))))) s (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))))
+Case conversion may be inaccurate. Consider using '#align polynomial.mem_iff_eq_smul_ann_ideal_generator Polynomial.mem_iff_eq_smul_annIdealGeneratorβ‚“'. -/
 theorem mem_iff_eq_smul_annIdealGenerator {p : π•œ[X]} (a : A) :
     p ∈ annIdeal π•œ a ↔ βˆƒ s : π•œ[X], p = s β€’ annIdealGenerator π•œ a := by
   simp_rw [@eq_comm _ p, ← mem_span_singleton, ← span_singleton_ann_ideal_generator π•œ a, Ideal.span]
 #align polynomial.mem_iff_eq_smul_ann_ideal_generator Polynomial.mem_iff_eq_smul_annIdealGenerator
 
+/- warning: polynomial.monic_ann_ideal_generator -> Polynomial.monic_annIdealGenerator is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), (Ne.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) -> (Polynomial.Monic.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a))
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), (Ne.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) -> (Polynomial.Monic.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a))
+Case conversion may be inaccurate. Consider using '#align polynomial.monic_ann_ideal_generator Polynomial.monic_annIdealGeneratorβ‚“'. -/
 /-- The generator we chose for the annihilating ideal is monic when the ideal is non-zero. -/
 theorem monic_annIdealGenerator (a : A) (hg : annIdealGenerator π•œ a β‰  0) :
     Monic (annIdealGenerator π•œ a) :=
@@ -136,17 +176,31 @@ theorem of the minimal polynomial.
 This is the first condition: it must annihilate the original element `a : A`. -/
 
 
+#print Polynomial.annIdealGenerator_aeval_eq_zero /-
 theorem annIdealGenerator_aeval_eq_zero (a : A) : aeval a (annIdealGenerator π•œ a) = 0 :=
   mem_annIdeal_iff_aeval_eq_zero.mp (annIdealGenerator_mem π•œ a)
 #align polynomial.ann_ideal_generator_aeval_eq_zero Polynomial.annIdealGenerator_aeval_eq_zero
+-/
 
 variable {π•œ}
 
+/- warning: polynomial.mem_iff_ann_ideal_generator_dvd -> Polynomial.mem_iff_annIdealGenerator_dvd is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] {p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))} {a : A}, Iff (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) (Dvd.Dvd.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (semigroupDvd.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.commRing.{u1} π•œ (EuclideanDomain.toCommRing.{u1} π•œ (Field.toEuclideanDomain.{u1} π•œ _inst_1))))))))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) p)
+but is expected to have type
+  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] {p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))} {a : A}, Iff (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) (Dvd.dvd.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (semigroupDvd.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (SemigroupWithZero.toSemigroup.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalSemiring.toSemigroupWithZero.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (CommRing.toNonUnitalCommRing.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.commRing.{u2} π•œ (EuclideanDomain.toCommRing.{u2} π•œ (Field.toEuclideanDomain.{u2} π•œ _inst_1))))))))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) p)
+Case conversion may be inaccurate. Consider using '#align polynomial.mem_iff_ann_ideal_generator_dvd Polynomial.mem_iff_annIdealGenerator_dvdβ‚“'. -/
 theorem mem_iff_annIdealGenerator_dvd {p : π•œ[X]} {a : A} :
     p ∈ annIdeal π•œ a ↔ annIdealGenerator π•œ a ∣ p := by
   rw [← Ideal.mem_span_singleton, span_singleton_ann_ideal_generator]
 #align polynomial.mem_iff_ann_ideal_generator_dvd Polynomial.mem_iff_annIdealGenerator_dvd
 
+/- warning: polynomial.degree_ann_ideal_generator_le_of_mem -> Polynomial.degree_annIdealGenerator_le_of_mem is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A) (p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))), (Membership.Mem.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (SetLike.hasMem.{u1, u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Submodule.setLike.{u1, u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) (Semiring.toModule.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) -> (Ne.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.zero.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))))))) -> (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} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a)) (Polynomial.degree.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) p))
+but is expected to have type
+  forall {π•œ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A) (p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))), (Membership.mem.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (SetLike.instMembership.{u2, u2} (Ideal.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Submodule.setLike.{u2, u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) (Semiring.toModule.{u2} (Polynomial.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (CommSemiring.toSemiring.{u2} π•œ (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) p (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) -> (Ne.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) p (OfNat.ofNat.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) 0 (Zero.toOfNat0.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.zero.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))))) -> (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} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a)) (Polynomial.degree.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) p))
+Case conversion may be inaccurate. Consider using '#align polynomial.degree_ann_ideal_generator_le_of_mem Polynomial.degree_annIdealGenerator_le_of_memβ‚“'. -/
 /-- The generator of the annihilating ideal has minimal degree among
  the non-zero members of the annihilating ideal -/
 theorem degree_annIdealGenerator_le_of_mem (a : A) (p : π•œ[X]) (hp : p ∈ annIdeal π•œ a)
@@ -156,6 +210,12 @@ theorem degree_annIdealGenerator_le_of_mem (a : A) (p : π•œ[X]) (hp : p ∈ ann
 
 variable (π•œ)
 
+/- warning: polynomial.ann_ideal_generator_eq_minpoly -> Polynomial.annIdealGenerator_eq_minpoly is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A), Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) (minpoly.{u1, u2} π•œ A (EuclideanDomain.toCommRing.{u1} π•œ (Field.toEuclideanDomain.{u1} π•œ _inst_1)) _inst_2 _inst_3 a)
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A), Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) (minpoly.{u2, u1} π•œ A (EuclideanDomain.toCommRing.{u2} π•œ (Field.toEuclideanDomain.{u2} π•œ _inst_1)) _inst_2 _inst_3 a)
+Case conversion may be inaccurate. Consider using '#align polynomial.ann_ideal_generator_eq_minpoly Polynomial.annIdealGenerator_eq_minpolyβ‚“'. -/
 /-- The generator of the annihilating ideal is the minimal polynomial. -/
 theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpoly π•œ a :=
   by
@@ -172,6 +232,12 @@ theorem annIdealGenerator_eq_minpoly (a : A) : annIdealGenerator π•œ a = minpol
           q_monic.NeZero
 #align polynomial.ann_ideal_generator_eq_minpoly Polynomial.annIdealGenerator_eq_minpoly
 
+/- warning: polynomial.monic_generator_eq_minpoly -> Polynomial.monic_generator_eq_minpoly is a dubious translation:
+lean 3 declaration is
+  forall (π•œ : Type.{u1}) {A : Type.{u2}} [_inst_1 : Field.{u1} π•œ] [_inst_2 : Ring.{u2} A] [_inst_3 : Algebra.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2)] (a : A) (p : Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))), (Polynomial.Monic.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1))) p) -> (Eq.{succ u1} (Ideal.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Ideal.span.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Polynomial.semiring.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)))) (Singleton.singleton.{u1, u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Set.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) (Set.hasSingleton.{u1} (Polynomial.{u1} π•œ (CommSemiring.toSemiring.{u1} π•œ (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1))))) p)) (Polynomial.annIdeal.{u1, u2} π•œ A (Semifield.toCommSemiring.{u1} π•œ (Field.toSemifield.{u1} π•œ _inst_1)) (Ring.toSemiring.{u2} A _inst_2) _inst_3 a)) -> (Eq.{succ u1} (Polynomial.{u1} π•œ (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (Field.toDivisionRing.{u1} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u1, u2} π•œ A _inst_1 _inst_2 _inst_3 a) p)
+but is expected to have type
+  forall (π•œ : Type.{u2}) {A : Type.{u1}} [_inst_1 : Field.{u2} π•œ] [_inst_2 : Ring.{u1} A] [_inst_3 : Algebra.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2)] (a : A) (p : Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))), (Polynomial.Monic.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))) p) -> (Eq.{succ u2} (Ideal.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Ideal.span.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.semiring.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Singleton.singleton.{u2, u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Set.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) (Set.instSingletonSet.{u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1))))) p)) (Polynomial.annIdeal.{u2, u1} π•œ A (Semifield.toCommSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)) (Ring.toSemiring.{u1} A _inst_2) _inst_3 a)) -> (Eq.{succ u2} (Polynomial.{u2} π•œ (DivisionSemiring.toSemiring.{u2} π•œ (Semifield.toDivisionSemiring.{u2} π•œ (Field.toSemifield.{u2} π•œ _inst_1)))) (Polynomial.annIdealGenerator.{u2, u1} π•œ A _inst_1 _inst_2 _inst_3 a) p)
+Case conversion may be inaccurate. Consider using '#align polynomial.monic_generator_eq_minpoly Polynomial.monic_generator_eq_minpolyβ‚“'. -/
 /-- If a monic generates the annihilating ideal, it must match our choice
  of the annihilating ideal generator. -/
 theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
Diff
@@ -83,7 +83,7 @@ Since `π•œ[X]` is a principal ideal domain there is a polynomial `g` such that
  We prefer the monic generator of the ideal. -/
 noncomputable def annIdealGenerator (a : A) : π•œ[X] :=
   let g := IsPrincipal.generator <| annIdeal π•œ a
-  g * c g.leadingCoeff⁻¹
+  g * C g.leadingCoeff⁻¹
 #align polynomial.ann_ideal_generator Polynomial.annIdealGenerator
 
 section
@@ -93,7 +93,7 @@ variable {π•œ}
 @[simp]
 theorem annIdealGenerator_eq_zero_iff {a : A} : annIdealGenerator π•œ a = 0 ↔ annIdeal π•œ a = βŠ₯ := by
   simp only [ann_ideal_generator, mul_eq_zero, is_principal.eq_bot_iff_generator_eq_zero,
-    Polynomial.c_eq_zero, inv_eq_zero, Polynomial.leadingCoeff_eq_zero, or_self_iff]
+    Polynomial.C_eq_zero, inv_eq_zero, Polynomial.leadingCoeff_eq_zero, or_self_iff]
 #align polynomial.ann_ideal_generator_eq_zero_iff Polynomial.annIdealGenerator_eq_zero_iff
 
 end

Changes in mathlib4

mathlib3
mathlib4
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
@@ -41,7 +41,6 @@ namespace Polynomial
 section Semiring
 
 variable {R A : Type*} [CommSemiring R] [Semiring A] [Algebra R A]
-
 variable (R)
 
 /-- `annIdeal R a` is the *annihilating ideal* of all `p : R[X]` such that `p(a) = 0`.
@@ -67,7 +66,6 @@ end Semiring
 section Field
 
 variable {π•œ A : Type*} [Field π•œ] [Ring A] [Algebra π•œ A]
-
 variable (π•œ)
 
 open Submodule
feat: sum and product of commuting semisimple endomorphisms (#10808)
  • Prove isSemisimple_of_mem_adjoin: if two commuting endomorphisms of a finite-dimensional vector space over a perfect field are both semisimple, then every endomorphism in the algebra generated by them (in particular their product and sum) is semisimple.

  • In the same file LinearAlgebra/Semisimple.lean, eq_zero_of_isNilpotent_isSemisimple and isSemisimple_of_squarefree_aeval_eq_zero are golfed, and IsSemisimple.minpoly_squarefree is proved

RingTheory/SimpleModule.lean:

  • Define IsSemisimpleRing R to mean that R is a semisimple R-module. add properties of simple modules and a characterization (they are exactly the quotients of the ring by maximal left ideals).

  • The annihilator of a semisimple module is a radical ideal.

  • Any module over a semisimple ring is semisimple.

  • A finite product of semisimple rings is semisimple.

  • Any quotient of a semisimple ring is semisimple.

  • Add Artin--Wedderburn as a TODO (proof_wanted).

  • Order/Atoms.lean: add the instance from IsSimpleOrder to ComplementedLattice, so that IsSimpleModule β†’ IsSemisimpleModule is automatically inferred.

Prerequisites for showing a product of semisimple rings is semisimple:

  • Algebra/Module/Submodule/Map.lean: generalize orderIsoMapComap so that it only requires RingHomSurjective rather than RingHomInvPair

  • Algebra/Ring/CompTypeclasses.lean, Mathlib/Algebra/Ring/Pi.lean, Algebra/Ring/Prod.lean: add RingHomSurjective instances

RingTheory/Artinian.lean:

  • quotNilradicalEquivPi: the quotient of a commutative Artinian ring R by its nilradical is isomorphic to the (finite) product of its quotients by maximal ideals (therefore a product of fields). equivPi: if the ring is moreover reduced, then the ring itself is a product of fields. Deduce that R is a semisimple ring and both R and R[X] are decomposition monoids. Requires RingEquiv.quotientBot in RingTheory/Ideal/QuotientOperations.lean.

  • Data/Polynomial/Eval.lean: the polynomial ring over a finite product of rings is isomorphic to the product of polynomial rings over individual rings. (Used to show R[X] is a decomposition monoid.)

Other necessary results:

  • FieldTheory/Minpoly/Field.lean: the minimal polynomial of an element in a reduced algebra over a field is radical.

  • RingTheory/PowerBasis.lean: generalize PowerBasis.finiteDimensional and rename it to .finite.

Annihilator stuff, some of which do not end up being used:

  • RingTheory/Ideal/Operations.lean: define Module.annihilator and redefine Submodule.annihilator in terms of it; add lemmas, including one that says an arbitrary intersection of radical ideals is radical. The new lemma Ideal.isRadical_iff_pow_one_lt depends on pow_imp_self_of_one_lt in Mathlib/Data/Nat/Interval.lean, which is also used to golf the proof of isRadical_iff_pow_one_lt.

  • Algebra/Module/Torsion.lean: add a lemma and an instance (unused)

  • Data/Polynomial/Module/Basic.lean: add a def (unused) and a lemma

  • LinearAlgebra/AnnihilatingPolynomial.lean: add lemma span_minpoly_eq_annihilator

Some results about idempotent linear maps (projections) and idempotent elements, used to show that any (left) ideal in a semisimple ring is spanned by an idempotent element (unused):

  • LinearAlgebra/Projection.lean: add def isIdempotentElemEquiv

  • LinearAlgebra/Span.lean: add two lemmas

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

Diff
@@ -177,6 +177,11 @@ theorem monic_generator_eq_minpoly (a : A) (p : π•œ[X]) (p_monic : p.Monic)
     Β· apply monic_annIdealGenerator _ _ ((Associated.ne_zero_iff p_gen).mp h)
 #align polynomial.monic_generator_eq_minpoly Polynomial.monic_generator_eq_minpoly
 
+theorem span_minpoly_eq_annihilator {M} [AddCommGroup M] [Module π•œ M] (f : Module.End π•œ M) :
+    Ideal.span {minpoly π•œ f} = Module.annihilator π•œ[X] (Module.AEval' f) := by
+  rw [← annIdealGenerator_eq_minpoly, span_singleton_annIdealGenerator]; ext
+  rw [mem_annIdeal_iff_aeval_eq_zero, DFunLike.ext_iff, Module.mem_annihilator]; rfl
+
 end Field
 
 end Polynomial
chore: update/remove heart beat bumps (#6860)

We clean up heart beat bumps after #6474.

Diff
@@ -72,7 +72,6 @@ variable (π•œ)
 
 open Submodule
 
-set_option synthInstance.maxHeartbeats 35000 in
 /-- `annIdealGenerator π•œ a` is the monic generator of `annIdeal π•œ a`
 if one exists, otherwise `0`.
 
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
@@ -40,7 +40,7 @@ namespace Polynomial
 
 section Semiring
 
-variable {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
+variable {R A : Type*} [CommSemiring R] [Semiring A] [Algebra R A]
 
 variable (R)
 
@@ -66,7 +66,7 @@ end Semiring
 
 section Field
 
-variable {π•œ A : Type _} [Field π•œ] [Ring A] [Algebra π•œ A]
+variable {π•œ A : Type*} [Field π•œ] [Ring A] [Algebra π•œ A]
 
 variable (π•œ)
 
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,15 +2,12 @@
 Copyright (c) 2022 Justin Thomas. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Justin Thomas
-
-! This file was ported from Lean 3 source module linear_algebra.annihilating_polynomial
-! leanprover-community/mathlib commit d3e8e0a0237c10c2627bf52c246b15ff8e7df4c0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.FieldTheory.Minpoly.Field
 import Mathlib.RingTheory.PrincipalIdealDomain
 
+#align_import linear_algebra.annihilating_polynomial from "leanprover-community/mathlib"@"d3e8e0a0237c10c2627bf52c246b15ff8e7df4c0"
+
 /-!
 # Annihilating Ideal
 
feat: port LinearAlgebra.AnnihilatingPolynomial (#4252)

Dependencies 10 + 630

631 files ported (98.4%)
264892 lines ported (98.7%)
Show graph

The unported dependencies are