ring_theory.polynomial.oppositesMathlib.RingTheory.Polynomial.Opposites

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 -/
-import Data.Polynomial.Degree.Definitions
+import Algebra.Polynomial.Degree.Definitions
 
 #align_import ring_theory.polynomial.opposites from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 -/
-import Mathbin.Data.Polynomial.Degree.Definitions
+import Data.Polynomial.Degree.Definitions
 
 #align_import ring_theory.polynomial.opposites from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
 
Diff
@@ -45,7 +45,7 @@ def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
 theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
     opRingEquiv R (op (monomial n r : R[X])) = monomial n (op r) := by
   simp only [op_ring_equiv, RingEquiv.trans_apply, RingEquiv.op_apply_apply,
-    RingEquiv.toAddEquiv_eq_coe, AddEquiv.mulOp_apply, AddEquiv.toFun_eq_coe, AddEquiv.coe_trans,
+    RingEquiv.toAddEquiv_eq_coe, AddEquiv.mulOp_apply, AddEquiv.to_fun_eq_coe, AddEquiv.coe_trans,
     op_add_equiv_apply, RingEquiv.coe_toAddEquiv, op_add_equiv_symm_apply, Function.comp_apply,
     unop_op, to_finsupp_iso_apply, to_finsupp_monomial, AddMonoidAlgebra.opRingEquiv_single,
     to_finsupp_iso_symm_apply, of_finsupp_single]
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
-
-! This file was ported from Lean 3 source module ring_theory.polynomial.opposites
-! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Polynomial.Degree.Definitions
 
+#align_import ring_theory.polynomial.opposites from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
+
 /-!  #  Interactions between `R[X]` and `Rᵐᵒᵖ[X]`
 
 > THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
Diff
@@ -30,11 +30,13 @@ noncomputable section
 
 namespace Polynomial
 
+#print Polynomial.opRingEquiv /-
 /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
 to the corresponding element of the opposite ring. -/
 def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
   ((toFinsuppIso R).op.trans AddMonoidAlgebra.opRingEquiv).trans (toFinsuppIso _).symm
 #align polynomial.op_ring_equiv Polynomial.opRingEquiv
+-/
 
 /-!  Lemmas to get started, using `op_ring_equiv R` on the various expressions of
 `finsupp.single`: `monomial`, `C a`, `X`, `C a * X ^ n`. -/
Diff
@@ -46,7 +46,7 @@ def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
 theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
     opRingEquiv R (op (monomial n r : R[X])) = monomial n (op r) := by
   simp only [op_ring_equiv, RingEquiv.trans_apply, RingEquiv.op_apply_apply,
-    RingEquiv.toAddEquiv_eq_coe, AddEquiv.mulOp_apply, [anonymous], AddEquiv.coe_trans,
+    RingEquiv.toAddEquiv_eq_coe, AddEquiv.mulOp_apply, AddEquiv.toFun_eq_coe, AddEquiv.coe_trans,
     op_add_equiv_apply, RingEquiv.coe_toAddEquiv, op_add_equiv_symm_apply, Function.comp_apply,
     unop_op, to_finsupp_iso_apply, to_finsupp_monomial, AddMonoidAlgebra.opRingEquiv_single,
     to_finsupp_iso_symm_apply, of_finsupp_single]
Diff
@@ -20,7 +20,7 @@ This file contains the basic API for "pushing through" the isomorphism
 over a semiring and the polynomial ring over the opposite semiring. -/
 
 
-open Polynomial
+open scoped Polynomial
 
 open Polynomial MulOpposite
 
Diff
@@ -30,12 +30,6 @@ noncomputable section
 
 namespace Polynomial
 
-/- warning: polynomial.op_ring_equiv -> Polynomial.opRingEquiv is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.mul.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.add.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2))
-Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv Polynomial.opRingEquivₓ'. -/
 /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
 to the corresponding element of the opposite ring. -/
 def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
Diff
@@ -34,7 +34,7 @@ namespace Polynomial
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2))
+  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.mul.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.add.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2))
 Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv Polynomial.opRingEquivₓ'. -/
 /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
 to the corresponding element of the opposite ring. -/
@@ -46,12 +46,7 @@ def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
 `finsupp.single`: `monomial`, `C a`, `X`, `C a * X ^ n`. -/
 
 
-/- warning: polynomial.op_ring_equiv_op_monomial -> Polynomial.opRingEquiv_op_monomial is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (n : Nat) (r : R), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (coeFn.{succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (coeFn.{succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.monomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) n) (MulOpposite.op.{u1} R r))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (n : Nat) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => Polynomial.{u1} R _inst_1) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => Polynomial.{u1} R _inst_1) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (Polynomial.monomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) n) (MulOpposite.op.{u1} R r))
-Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomialₓ'. -/
+#print Polynomial.opRingEquiv_op_monomial /-
 -- for maintenance purposes: `by simp [op_ring_equiv]` proves this lemma
 @[simp]
 theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
@@ -62,39 +57,28 @@ theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
     unop_op, to_finsupp_iso_apply, to_finsupp_monomial, AddMonoidAlgebra.opRingEquiv_single,
     to_finsupp_iso_symm_apply, of_finsupp_single]
 #align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomial
+-/
 
-/- warning: polynomial.op_ring_equiv_op_C -> Polynomial.opRingEquiv_op_C is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (a : R), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (Polynomial.C.{u1} R _inst_1) a))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.op.{u1} R a))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (a : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) a))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) a))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R a))
-Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_Cₓ'. -/
+#print Polynomial.opRingEquiv_op_C /-
 @[simp]
 theorem opRingEquiv_op_C (a : R) : opRingEquiv R (op (C a)) = C (op a) :=
   opRingEquiv_op_monomial 0 a
 #align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_C
+-/
 
-/- warning: polynomial.op_ring_equiv_op_X -> Polynomial.opRingEquiv_op_X is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R], Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R], Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_Xₓ'. -/
+#print Polynomial.opRingEquiv_op_X /-
 @[simp]
 theorem opRingEquiv_op_X : opRingEquiv R (op (X : R[X])) = X :=
   opRingEquiv_op_monomial 1 1
 #align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_X
+-/
 
-/- warning: polynomial.op_ring_equiv_op_C_mul_X_pow -> Polynomial.opRingEquiv_op_C_mul_X_pow is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (r : R) (n : Nat), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (instHMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) Nat (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (instHPow.{u1, 0} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) n))
-but is expected to have type
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (r : R) (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) Nat (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (instHPow.{u1, 0} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) n))
-Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_C_mul_X_powₓ'. -/
+#print Polynomial.opRingEquiv_op_C_mul_X_pow /-
 theorem opRingEquiv_op_C_mul_X_pow (r : R) (n : ℕ) :
     opRingEquiv R (op (C r * X ^ n : R[X])) = C (op r) * X ^ n := by
   simp only [X_pow_mul, op_mul, op_pow, map_mul, map_pow, op_ring_equiv_op_X, op_ring_equiv_op_C]
 #align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_C_mul_X_pow
+-/
 
 /-!  Lemmas to get started, using `(op_ring_equiv R).symm` on the various expressions of
 `finsupp.single`: `monomial`, `C a`, `X`, `C a * X ^ n`. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 
 ! This file was ported from Lean 3 source module ring_theory.polynomial.opposites
-! leanprover-community/mathlib commit 63417e01fbc711beaf25fa73b6edb395c0cfddd0
+! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -12,6 +12,9 @@ import Mathbin.Data.Polynomial.Degree.Definitions
 
 /-!  #  Interactions between `R[X]` and `Rᵐᵒᵖ[X]`
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file contains the basic API for "pushing through" the isomorphism
 `op_ring_equiv : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X]`.  It allows going back and forth between a polynomial ring
 over a semiring and the polynomial ring over the opposite semiring. -/
Diff
@@ -27,6 +27,12 @@ noncomputable section
 
 namespace Polynomial
 
+/- warning: polynomial.op_ring_equiv -> Polynomial.opRingEquiv is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_2))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_2 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_2)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.mul'.{u1} R _inst_2)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_2) (Polynomial.add'.{u1} R _inst_2)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_2))
+Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv Polynomial.opRingEquivₓ'. -/
 /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
 to the corresponding element of the opposite ring. -/
 def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
@@ -37,6 +43,12 @@ def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
 `finsupp.single`: `monomial`, `C a`, `X`, `C a * X ^ n`. -/
 
 
+/- warning: polynomial.op_ring_equiv_op_monomial -> Polynomial.opRingEquiv_op_monomial is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (n : Nat) (r : R), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (coeFn.{succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (coeFn.{succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.monomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1) n) (MulOpposite.op.{u1} R r))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (n : Nat) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => Polynomial.{u1} R _inst_1) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => Polynomial.{u1} R _inst_1) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} R R R (Polynomial.{u1} R _inst_1) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R _inst_1) (Polynomial.module.{u1, u1} R _inst_1 R _inst_1 (Semiring.toModule.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Polynomial.monomial.{u1} R _inst_1 n) r))) (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.module.{u1, u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (Semiring.toModule.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (Polynomial.monomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) n) (MulOpposite.op.{u1} R r))
+Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomialₓ'. -/
 -- for maintenance purposes: `by simp [op_ring_equiv]` proves this lemma
 @[simp]
 theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
@@ -48,49 +60,76 @@ theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
     to_finsupp_iso_symm_apply, of_finsupp_single]
 #align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomial
 
+/- warning: polynomial.op_ring_equiv_op_C -> Polynomial.opRingEquiv_op_C is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (a : R), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (Polynomial.C.{u1} R _inst_1) a))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.op.{u1} R a))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (a : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) a))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) a))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R a))
+Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_Cₓ'. -/
 @[simp]
-theorem opRingEquiv_op_c (a : R) : opRingEquiv R (op (C a)) = C (op a) :=
+theorem opRingEquiv_op_C (a : R) : opRingEquiv R (op (C a)) = C (op a) :=
   opRingEquiv_op_monomial 0 a
-#align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_c
-
+#align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_C
+
+/- warning: polynomial.op_ring_equiv_op_X -> Polynomial.opRingEquiv_op_X is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R], Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R], Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.X.{u1} R _inst_1))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_Xₓ'. -/
 @[simp]
-theorem opRingEquiv_op_x : opRingEquiv R (op (X : R[X])) = X :=
+theorem opRingEquiv_op_X : opRingEquiv R (op (X : R[X])) = X :=
   opRingEquiv_op_monomial 1 1
-#align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_x
-
-theorem opRingEquiv_op_c_mul_x_pow (r : R) (n : ℕ) :
+#align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_X
+
+/- warning: polynomial.op_ring_equiv_op_C_mul_X_pow -> Polynomial.opRingEquiv_op_C_mul_X_pow is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (r : R) (n : Nat), Eq.{succ u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (fun (_x : RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) => (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingEquiv.hasCoeToFun.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (MulOpposite.hasAdd.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) => R -> (Polynomial.{u1} R _inst_1)) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (instHMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) => (MulOpposite.{u1} R) -> (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) Nat (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (instHPow.{u1, 0} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)))))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1)) n))
+but is expected to have type
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] (r : R) (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (fun (_x : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquivClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instNonUnitalNonAssocSemiringMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingEquiv.instRingEquivClassRingEquiv.{u1, u1} (MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.mul'.{u1} R _inst_1)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.add'.{u1} R _inst_1)) (Polynomial.add'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.opRingEquiv.{u1} R _inst_1) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} (Polynomial.{u1} R _inst_1)) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} (Polynomial.{u1} R _inst_1) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.{u1} R _inst_1) (Polynomial.{u1} R _inst_1) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) r) (Polynomial.mul'.{u1} R _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => Polynomial.{u1} R _inst_1) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))) R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1)))))) (Polynomial.C.{u1} R _inst_1) r) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R _inst_1) Nat (Polynomial.{u1} R _inst_1) (instHPow.{u1, 0} (Polynomial.{u1} R _inst_1) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R _inst_1) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R _inst_1) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R _inst_1) (Polynomial.semiring.{u1} R _inst_1))))) (Polynomial.X.{u1} R _inst_1) n)))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (Polynomial.mul'.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (fun (_x : MulOpposite.{u1} R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MulOpposite.{u1} R) => Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (MulOpposite.{u1} R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))) (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MulOpposite.{u1} R) (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))))) (Polynomial.C.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MulOpposite.op.{u1} R r)) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) Nat (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (instHPow.{u1, 0} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) (Polynomial.semiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)))))) (Polynomial.X.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1)) n))
+Case conversion may be inaccurate. Consider using '#align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_C_mul_X_powₓ'. -/
+theorem opRingEquiv_op_C_mul_X_pow (r : R) (n : ℕ) :
     opRingEquiv R (op (C r * X ^ n : R[X])) = C (op r) * X ^ n := by
   simp only [X_pow_mul, op_mul, op_pow, map_mul, map_pow, op_ring_equiv_op_X, op_ring_equiv_op_C]
-#align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_c_mul_x_pow
+#align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_C_mul_X_pow
 
 /-!  Lemmas to get started, using `(op_ring_equiv R).symm` on the various expressions of
 `finsupp.single`: `monomial`, `C a`, `X`, `C a * X ^ n`. -/
 
 
+#print Polynomial.opRingEquiv_symm_monomial /-
 @[simp]
 theorem opRingEquiv_symm_monomial (n : ℕ) (r : Rᵐᵒᵖ) :
     (opRingEquiv R).symm (monomial n r) = op (monomial n (unop r)) :=
   (opRingEquiv R).Injective (by simp)
 #align polynomial.op_ring_equiv_symm_monomial Polynomial.opRingEquiv_symm_monomial
+-/
 
+#print Polynomial.opRingEquiv_symm_C /-
 @[simp]
-theorem opRingEquiv_symm_c (a : Rᵐᵒᵖ) : (opRingEquiv R).symm (C a) = op (C (unop a)) :=
+theorem opRingEquiv_symm_C (a : Rᵐᵒᵖ) : (opRingEquiv R).symm (C a) = op (C (unop a)) :=
   opRingEquiv_symm_monomial 0 a
-#align polynomial.op_ring_equiv_symm_C Polynomial.opRingEquiv_symm_c
+#align polynomial.op_ring_equiv_symm_C Polynomial.opRingEquiv_symm_C
+-/
 
+#print Polynomial.opRingEquiv_symm_X /-
 @[simp]
-theorem opRingEquiv_symm_x : (opRingEquiv R).symm (X : Rᵐᵒᵖ[X]) = op X :=
+theorem opRingEquiv_symm_X : (opRingEquiv R).symm (X : Rᵐᵒᵖ[X]) = op X :=
   opRingEquiv_symm_monomial 1 1
-#align polynomial.op_ring_equiv_symm_X Polynomial.opRingEquiv_symm_x
+#align polynomial.op_ring_equiv_symm_X Polynomial.opRingEquiv_symm_X
+-/
 
-theorem opRingEquiv_symm_c_mul_x_pow (r : Rᵐᵒᵖ) (n : ℕ) :
+#print Polynomial.opRingEquiv_symm_C_mul_X_pow /-
+theorem opRingEquiv_symm_C_mul_X_pow (r : Rᵐᵒᵖ) (n : ℕ) :
     (opRingEquiv R).symm (C r * X ^ n : Rᵐᵒᵖ[X]) = op (C (unop r) * X ^ n) := by
   rw [C_mul_X_pow_eq_monomial, op_ring_equiv_symm_monomial, ← C_mul_X_pow_eq_monomial]
-#align polynomial.op_ring_equiv_symm_C_mul_X_pow Polynomial.opRingEquiv_symm_c_mul_x_pow
+#align polynomial.op_ring_equiv_symm_C_mul_X_pow Polynomial.opRingEquiv_symm_C_mul_X_pow
+-/
 
 /-!  Lemmas about more global properties of polynomials and opposites. -/
 
 
+#print Polynomial.coeff_opRingEquiv /-
 @[simp]
 theorem coeff_opRingEquiv (p : R[X]ᵐᵒᵖ) (n : ℕ) :
     (opRingEquiv R p).coeff n = op ((unop p).coeff n) :=
@@ -99,7 +138,9 @@ theorem coeff_opRingEquiv (p : R[X]ᵐᵒᵖ) (n : ℕ) :
   cases p
   rfl
 #align polynomial.coeff_op_ring_equiv Polynomial.coeff_opRingEquiv
+-/
 
+#print Polynomial.support_opRingEquiv /-
 @[simp]
 theorem support_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).support = (unop p).support :=
   by
@@ -107,7 +148,9 @@ theorem support_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).support = (u
   cases p
   exact Finsupp.support_mapRange_of_injective _ _ op_injective
 #align polynomial.support_op_ring_equiv Polynomial.support_opRingEquiv
+-/
 
+#print Polynomial.natDegree_opRingEquiv /-
 @[simp]
 theorem natDegree_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).natDegree = (unop p).natDegree :=
   by
@@ -117,12 +160,15 @@ theorem natDegree_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).natDegree
     simp only [p0, nat_degree_eq_support_max', Ne.def, AddEquivClass.map_eq_zero_iff, not_false_iff,
       support_op_ring_equiv, unop_eq_zero_iff]
 #align polynomial.nat_degree_op_ring_equiv Polynomial.natDegree_opRingEquiv
+-/
 
+#print Polynomial.leadingCoeff_opRingEquiv /-
 @[simp]
 theorem leadingCoeff_opRingEquiv (p : R[X]ᵐᵒᵖ) :
     (opRingEquiv R p).leadingCoeff = op (unop p).leadingCoeff := by
   rw [leading_coeff, coeff_op_ring_equiv, nat_degree_op_ring_equiv, leading_coeff]
 #align polynomial.leading_coeff_op_ring_equiv Polynomial.leadingCoeff_opRingEquiv
+-/
 
 end Polynomial
 
Diff
@@ -49,17 +49,17 @@ theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
 #align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomial
 
 @[simp]
-theorem opRingEquiv_op_c (a : R) : opRingEquiv R (op (c a)) = c (op a) :=
+theorem opRingEquiv_op_c (a : R) : opRingEquiv R (op (C a)) = C (op a) :=
   opRingEquiv_op_monomial 0 a
 #align polynomial.op_ring_equiv_op_C Polynomial.opRingEquiv_op_c
 
 @[simp]
-theorem opRingEquiv_op_x : opRingEquiv R (op (x : R[X])) = x :=
+theorem opRingEquiv_op_x : opRingEquiv R (op (X : R[X])) = X :=
   opRingEquiv_op_monomial 1 1
 #align polynomial.op_ring_equiv_op_X Polynomial.opRingEquiv_op_x
 
 theorem opRingEquiv_op_c_mul_x_pow (r : R) (n : ℕ) :
-    opRingEquiv R (op (c r * x ^ n : R[X])) = c (op r) * x ^ n := by
+    opRingEquiv R (op (C r * X ^ n : R[X])) = C (op r) * X ^ n := by
   simp only [X_pow_mul, op_mul, op_pow, map_mul, map_pow, op_ring_equiv_op_X, op_ring_equiv_op_C]
 #align polynomial.op_ring_equiv_op_C_mul_X_pow Polynomial.opRingEquiv_op_c_mul_x_pow
 
@@ -74,17 +74,17 @@ theorem opRingEquiv_symm_monomial (n : ℕ) (r : Rᵐᵒᵖ) :
 #align polynomial.op_ring_equiv_symm_monomial Polynomial.opRingEquiv_symm_monomial
 
 @[simp]
-theorem opRingEquiv_symm_c (a : Rᵐᵒᵖ) : (opRingEquiv R).symm (c a) = op (c (unop a)) :=
+theorem opRingEquiv_symm_c (a : Rᵐᵒᵖ) : (opRingEquiv R).symm (C a) = op (C (unop a)) :=
   opRingEquiv_symm_monomial 0 a
 #align polynomial.op_ring_equiv_symm_C Polynomial.opRingEquiv_symm_c
 
 @[simp]
-theorem opRingEquiv_symm_x : (opRingEquiv R).symm (x : Rᵐᵒᵖ[X]) = op x :=
+theorem opRingEquiv_symm_x : (opRingEquiv R).symm (X : Rᵐᵒᵖ[X]) = op X :=
   opRingEquiv_symm_monomial 1 1
 #align polynomial.op_ring_equiv_symm_X Polynomial.opRingEquiv_symm_x
 
 theorem opRingEquiv_symm_c_mul_x_pow (r : Rᵐᵒᵖ) (n : ℕ) :
-    (opRingEquiv R).symm (c r * x ^ n : Rᵐᵒᵖ[X]) = op (c (unop r) * x ^ n) := by
+    (opRingEquiv R).symm (C r * X ^ n : Rᵐᵒᵖ[X]) = op (C (unop r) * X ^ n) := by
   rw [C_mul_X_pow_eq_monomial, op_ring_equiv_symm_monomial, ← C_mul_X_pow_eq_monomial]
 #align polynomial.op_ring_equiv_symm_C_mul_X_pow Polynomial.opRingEquiv_symm_c_mul_x_pow
 

Changes in mathlib4

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

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

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
 -/
-import Mathlib.Data.Polynomial.Degree.Definitions
+import Mathlib.Algebra.Polynomial.Degree.Definitions
 
 #align_import ring_theory.polynomial.opposites from "leanprover-community/mathlib"@"63417e01fbc711beaf25fa73b6edb395c0cfddd0"
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813)
Diff
@@ -110,7 +110,7 @@ theorem support_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).support = (u
 theorem natDegree_opRingEquiv (p : R[X]ᵐᵒᵖ) : (opRingEquiv R p).natDegree = (unop p).natDegree := by
   by_cases p0 : p = 0
   · simp only [p0, _root_.map_zero, natDegree_zero, unop_zero]
-  · simp only [p0, natDegree_eq_support_max', Ne.def, AddEquivClass.map_eq_zero_iff, not_false_iff,
+  · simp only [p0, natDegree_eq_support_max', Ne, AddEquivClass.map_eq_zero_iff, not_false_iff,
       support_opRingEquiv, unop_eq_zero_iff]
 #align polynomial.nat_degree_op_ring_equiv Polynomial.natDegree_opRingEquiv
 
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
@@ -18,7 +18,7 @@ open Polynomial
 
 open Polynomial MulOpposite
 
-variable {R : Type _} [Semiring R]
+variable {R : Type*} [Semiring R]
 
 noncomputable section
 
@@ -26,7 +26,7 @@ namespace Polynomial
 
 /-- Ring isomorphism between `R[X]ᵐᵒᵖ` and `Rᵐᵒᵖ[X]` sending each coefficient of a polynomial
 to the corresponding element of the opposite ring. -/
-def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
+def opRingEquiv (R : Type*) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
   ((toFinsuppIso R).op.trans AddMonoidAlgebra.opRingEquiv).trans (toFinsuppIso _).symm
 #align polynomial.op_ring_equiv Polynomial.opRingEquiv
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Damiano Testa. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Damiano Testa
-
-! This file was ported from Lean 3 source module ring_theory.polynomial.opposites
-! leanprover-community/mathlib commit 63417e01fbc711beaf25fa73b6edb395c0cfddd0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Polynomial.Degree.Definitions
 
+#align_import ring_theory.polynomial.opposites from "leanprover-community/mathlib"@"63417e01fbc711beaf25fa73b6edb395c0cfddd0"
+
 /-!  #  Interactions between `R[X]` and `Rᵐᵒᵖ[X]`
 
 This file contains the basic API for "pushing through" the isomorphism
refactor: make MulOpposite = AddOpposite (#4050)

It turns out to be convenient to have MulOpposite α = AddOpposite α true by definition, in the same way that it is convenient to have Additive α = α; this means that we also get the defeq AddOpposite (Additive α) = MulOpposite α, which is convenient when working with quotients. This is a compromise between making MulOpposite α = AddOpposite α = α (what we had in Lean 3) and having no defeqs within those three types (which we had as of #1036).

This is motivated by #3333

Diff
@@ -41,7 +41,7 @@ def opRingEquiv (R : Type _) [Semiring R] : R[X]ᵐᵒᵖ ≃+* Rᵐᵒᵖ[X] :=
 theorem opRingEquiv_op_monomial (n : ℕ) (r : R) :
     opRingEquiv R (op (monomial n r : R[X])) = monomial n (op r) := by
   simp only [opRingEquiv, RingEquiv.coe_trans, Function.comp_apply,
-    AddMonoidAlgebra.opRingEquiv_apply, RingEquiv.op_apply_apply_unop, toFinsuppIso_apply,
+    AddMonoidAlgebra.opRingEquiv_apply, RingEquiv.op_apply_apply, toFinsuppIso_apply, unop_op,
     toFinsupp_monomial, Finsupp.mapRange_single, toFinsuppIso_symm_apply, ofFinsupp_single]
 #align polynomial.op_ring_equiv_op_monomial Polynomial.opRingEquiv_op_monomial
 
feat: port RingTheory.Polynomial.Opposites (#2868)

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

Dependencies 8 + 392

393 files ported (98.0%)
162197 lines ported (98.1%)
Show graph

The unported dependencies are