ring_theory.witt_vector.witt_polynomialMathlib.RingTheory.WittVector.WittPolynomial

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -122,7 +122,7 @@ variable {R} {S : Type _} [CommRing S]
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
   by
-  rw [wittPolynomial, RingHom.map_sum, wittPolynomial, sum_congr rfl]
+  rw [wittPolynomial, map_sum, wittPolynomial, sum_congr rfl]
   intro i hi
   rw [map_monomial, RingHom.map_pow, map_natCast]
 #align map_witt_polynomial map_wittPolynomial
@@ -135,7 +135,7 @@ variable (R)
 theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
     constantCoeff (wittPolynomial p R n) = 0 :=
   by
-  simp only [wittPolynomial, RingHom.map_sum, constant_coeff_monomial]
+  simp only [wittPolynomial, map_sum, constant_coeff_monomial]
   rw [sum_eq_zero]
   rintro i hi
   rw [if_neg]
@@ -257,7 +257,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
   by
   apply Nat.strong_induction_on n <;> clear n
   intro n IH
-  rw [xInTermsOfW_eq, mul_comm, RingHom.map_mul, RingHom.map_sub, RingHom.map_sum, constant_coeff_C,
+  rw [xInTermsOfW_eq, mul_comm, RingHom.map_mul, RingHom.map_sub, map_sum, constant_coeff_C,
     sum_eq_zero]
   · simp only [constant_coeff_X, sub_zero, MulZeroClass.mul_zero]
   · intro m H
Diff
@@ -5,9 +5,9 @@ Authors: Johan Commelin, Robert Y. Lewis
 -/
 import Algebra.CharP.Invertible
 import Data.Fintype.BigOperators
-import Data.MvPolynomial.Degrees
-import Data.MvPolynomial.CommRing
-import Data.MvPolynomial.Expand
+import Algebra.MvPolynomial.Degrees
+import Algebra.MvPolynomial.CommRing
+import Algebra.MvPolynomial.Expand
 import Data.ZMod.Basic
 
 #align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
Diff
@@ -5,10 +5,10 @@ Authors: Johan Commelin, Robert Y. Lewis
 -/
 import Algebra.CharP.Invertible
 import Data.Fintype.BigOperators
-import Data.MvPolynomial.Variables
+import Data.MvPolynomial.Degrees
 import Data.MvPolynomial.CommRing
 import Data.MvPolynomial.Expand
-import Data.Zmod.Basic
+import Data.ZMod.Basic
 
 #align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
@@ -178,7 +178,7 @@ theorem wittPolynomial_zmod_self (n : ℕ) :
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
     MulZeroClass.zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
-  rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, alg_hom_C, ← pow_mul, ← pow_succ]
+  rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, alg_hom_C, ← pow_mul, ← pow_succ']
   congr
   rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
@@ -350,7 +350,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
   rw [xInTermsOfW_eq, AlgHom.map_mul, AlgHom.map_sub, bind₁_X_right, alg_hom_C, AlgHom.map_sum]
   have : W_ R n - ∑ i in range n, C (p ^ i : R) * X i ^ p ^ (n - i) = C (p ^ n : R) * X n := by
     simp only [wittPolynomial_eq_sum_C_mul_X_pow, tsub_self, sum_range_succ_comm, pow_one,
-      add_sub_cancel, pow_zero]
+      add_sub_cancel_right, pow_zero]
   rw [sum_congr rfl, this]
   ·-- this is really slow for some reason
     rw [mul_right_comm, ← C_mul, ← mul_pow, mul_invOf_self, one_pow, C_1, one_mul]
Diff
@@ -180,7 +180,7 @@ theorem wittPolynomial_zmod_self (n : ℕ) :
   intro k hk
   rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, alg_hom_C, ← pow_mul, ← pow_succ]
   congr
-  rw [mem_range] at hk 
+  rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
 #align witt_polynomial_zmod_self wittPolynomial_zmod_self
 -/
@@ -261,7 +261,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
     sum_eq_zero]
   · simp only [constant_coeff_X, sub_zero, MulZeroClass.mul_zero]
   · intro m H
-    rw [mem_range] at H 
+    rw [mem_range] at H
     simp only [RingHom.map_mul, RingHom.map_pow, constant_coeff_C, IH m H]
     rw [zero_pow, MulZeroClass.mul_zero]
     apply pow_pos hp.1.Pos
@@ -297,14 +297,14 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
   all_goals
     intro H
     replace H := vars_sum_subset _ _ H
-    rw [mem_bUnion] at H 
+    rw [mem_bUnion] at H
     rcases H with ⟨j, hj, H⟩
-    rw [vars_C_mul] at H 
+    rw [vars_C_mul] at H
     swap
     · apply pow_ne_zero; exact_mod_cast hp.1.NeZero
-    rw [mem_range] at hj 
+    rw [mem_range] at hj
     replace H := (ih j hj).2 (vars_pow _ _ H)
-    rw [mem_range] at H 
+    rw [mem_range] at H
   · rw [mem_range]
     exact lt_of_lt_of_le H hj
   · exact lt_irrefl n (lt_of_lt_of_le H hj)
@@ -355,7 +355,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
   ·-- this is really slow for some reason
     rw [mul_right_comm, ← C_mul, ← mul_pow, mul_invOf_self, one_pow, C_1, one_mul]
   · intro i h
-    rw [mem_range] at h 
+    rw [mem_range] at h
     simp only [AlgHom.map_mul, AlgHom.map_pow, alg_hom_C, H i h]
 #align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfW
 -/
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 -/
-import Mathbin.Algebra.CharP.Invertible
-import Mathbin.Data.Fintype.BigOperators
-import Mathbin.Data.MvPolynomial.Variables
-import Mathbin.Data.MvPolynomial.CommRing
-import Mathbin.Data.MvPolynomial.Expand
-import Mathbin.Data.Zmod.Basic
+import Algebra.CharP.Invertible
+import Data.Fintype.BigOperators
+import Data.MvPolynomial.Variables
+import Data.MvPolynomial.CommRing
+import Data.MvPolynomial.Expand
+import Data.Zmod.Basic
 
 #align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
 
Diff
@@ -166,12 +166,12 @@ theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ 
 #align aeval_witt_polynomial aeval_wittPolynomial
 -/
 
-#print wittPolynomial_zMod_self /-
+#print wittPolynomial_zmod_self /-
 /-- Over the ring `zmod (p^(n+1))`, we produce the `n+1`st Witt polynomial
 by expanding the `n`th Witt polynomial by `p`.
 -/
 @[simp]
-theorem wittPolynomial_zMod_self (n : ℕ) :
+theorem wittPolynomial_zmod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) :=
   by
   simp only [wittPolynomial_eq_sum_C_mul_X_pow]
@@ -182,7 +182,7 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   congr
   rw [mem_range] at hk 
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
-#align witt_polynomial_zmod_self wittPolynomial_zMod_self
+#align witt_polynomial_zmod_self wittPolynomial_zmod_self
 -/
 
 section PPrime
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module ring_theory.witt_vector.witt_polynomial
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.CharP.Invertible
 import Mathbin.Data.Fintype.BigOperators
@@ -15,6 +10,8 @@ import Mathbin.Data.MvPolynomial.CommRing
 import Mathbin.Data.MvPolynomial.Expand
 import Mathbin.Data.Zmod.Basic
 
+#align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
 /-!
 # Witt polynomials
 
Diff
@@ -89,15 +89,15 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
 #align witt_polynomial wittPolynomial
 -/
 
-#print wittPolynomial_eq_sum_c_mul_x_pow /-
-theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
+#print wittPolynomial_eq_sum_C_mul_X_pow /-
+theorem wittPolynomial_eq_sum_C_mul_X_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
   by
   apply sum_congr rfl
   rintro i -
   rw [monomial_eq, Finsupp.prod_single_index]
   rw [pow_zero]
-#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_pow
+#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_C_mul_X_pow
 -/
 
 /-! We set up notation locally to this file, to keep statements short and comprehensible.
@@ -157,7 +157,7 @@ theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
 #print wittPolynomial_one /-
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
-  simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
+  simp only [wittPolynomial_eq_sum_C_mul_X_pow, sum_range_succ_comm, range_one, sum_singleton,
     one_mul, pow_one, C_1, pow_zero]
 #align witt_polynomial_one wittPolynomial_one
 -/
@@ -177,7 +177,7 @@ by expanding the `n`th Witt polynomial by `p`.
 theorem wittPolynomial_zMod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) :=
   by
-  simp only [wittPolynomial_eq_sum_c_mul_x_pow]
+  simp only [wittPolynomial_eq_sum_C_mul_X_pow]
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
     MulZeroClass.zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
@@ -335,7 +335,7 @@ theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     bind₁ (xInTermsOfW p R) (W_ R k) = X k :=
   by
-  rw [wittPolynomial_eq_sum_c_mul_x_pow, AlgHom.map_sum]
+  rw [wittPolynomial_eq_sum_C_mul_X_pow, AlgHom.map_sum]
   simp only [AlgHom.map_pow, C_pow, AlgHom.map_mul, alg_hom_C]
   rw [sum_range_succ_comm, tsub_self, pow_zero, pow_one, bind₁_X_right, mul_comm, ← C_pow,
     xInTermsOfW_aux]
@@ -352,7 +352,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
   clear n; intro n H
   rw [xInTermsOfW_eq, AlgHom.map_mul, AlgHom.map_sub, bind₁_X_right, alg_hom_C, AlgHom.map_sum]
   have : W_ R n - ∑ i in range n, C (p ^ i : R) * X i ^ p ^ (n - i) = C (p ^ n : R) * X n := by
-    simp only [wittPolynomial_eq_sum_c_mul_x_pow, tsub_self, sum_range_succ_comm, pow_one,
+    simp only [wittPolynomial_eq_sum_C_mul_X_pow, tsub_self, sum_range_succ_comm, pow_one,
       add_sub_cancel, pow_zero]
   rw [sum_congr rfl, this]
   ·-- this is really slow for some reason
Diff
@@ -89,6 +89,7 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
 #align witt_polynomial wittPolynomial
 -/
 
+#print wittPolynomial_eq_sum_c_mul_x_pow /-
 theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
   by
@@ -97,16 +98,15 @@ theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
   rw [monomial_eq, Finsupp.prod_single_index]
   rw [pow_zero]
 #align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_pow
+-/
 
 /-! We set up notation locally to this file, to keep statements short and comprehensible.
 This allows us to simply write `W n` or `W_ ℤ n`. -/
 
 
--- mathport name: witt_polynomial
 -- Notation with ring of coefficients explicit
 scoped[Witt] notation "W_" => wittPolynomial p
 
--- mathport name: witt_polynomial.infer
 -- Notation with ring of coefficients implicit
 scoped[Witt] notation "W" => wittPolynomial p hole!
 
@@ -121,6 +121,7 @@ section
 
 variable {R} {S : Type _} [CommRing S]
 
+#print map_wittPolynomial /-
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
   by
@@ -128,9 +129,11 @@ theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
   intro i hi
   rw [map_monomial, RingHom.map_pow, map_natCast]
 #align map_witt_polynomial map_wittPolynomial
+-/
 
 variable (R)
 
+#print constantCoeff_wittPolynomial /-
 @[simp]
 theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
     constantCoeff (wittPolynomial p R n) = 0 :=
@@ -142,6 +145,7 @@ theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
   rw [Finsupp.single_eq_zero]
   exact ne_of_gt (pow_pos hp.1.Pos _)
 #align constant_coeff_witt_polynomial constantCoeff_wittPolynomial
+-/
 
 #print wittPolynomial_zero /-
 @[simp]
@@ -150,17 +154,22 @@ theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
 #align witt_polynomial_zero wittPolynomial_zero
 -/
 
+#print wittPolynomial_one /-
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
   simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
     one_mul, pow_one, C_1, pow_zero]
 #align witt_polynomial_one wittPolynomial_one
+-/
 
+#print aeval_wittPolynomial /-
 theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
     aeval f (W_ R n) = ∑ i in range (n + 1), p ^ i * f i ^ p ^ (n - i) := by
   simp [wittPolynomial, AlgHom.map_sum, aeval_monomial, Finsupp.prod_single_index]
 #align aeval_witt_polynomial aeval_wittPolynomial
+-/
 
+#print wittPolynomial_zMod_self /-
 /-- Over the ring `zmod (p^(n+1))`, we produce the `n+1`st Witt polynomial
 by expanding the `n`th Witt polynomial by `p`.
 -/
@@ -177,13 +186,13 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   rw [mem_range] at hk 
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
 #align witt_polynomial_zmod_self wittPolynomial_zMod_self
+-/
 
 section PPrime
 
 variable [hp : NeZero p]
 
-include hp
-
+#print wittPolynomial_vars /-
 theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars = range (n + 1) :=
   by
   have : ∀ i, (monomial (Finsupp.single i (p ^ (n - i))) (p ^ i : R)).vars = {i} :=
@@ -199,6 +208,7 @@ theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars
     apply disjoint_singleton_left.mpr
     rwa [mem_singleton]
 #align witt_polynomial_vars wittPolynomial_vars
+-/
 
 #print wittPolynomial_vars_subset /-
 theorem wittPolynomial_vars_subset (n : ℕ) : (wittPolynomial p R n).vars ⊆ range (n + 1) :=
@@ -222,6 +232,7 @@ The polynomials `X_in_terms_of_W` give the coordinate transformation in the back
 -/
 
 
+#print xInTermsOfW /-
 /-- The `X_in_terms_of_W p R n` is the polynomial on the basis of Witt polynomials
 that corresponds to the ordinary `X n`. -/
 noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
@@ -232,13 +243,17 @@ noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
           C (p ^ (i : ℕ) : R) * xInTermsOfW i ^ p ^ (n - i)) *
       C (⅟ p ^ n : R)
 #align X_in_terms_of_W xInTermsOfW
+-/
 
+#print xInTermsOfW_eq /-
 theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} :
     xInTermsOfW p R n =
       (X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i)) * C (⅟ p ^ n : R) :=
   by rw [xInTermsOfW, ← Fin.sum_univ_eq_sum_range]
 #align X_in_terms_of_W_eq xInTermsOfW_eq
+-/
 
+#print constantCoeff_xInTermsOfW /-
 @[simp]
 theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n : ℕ) :
     constantCoeff (xInTermsOfW p R n) = 0 :=
@@ -254,18 +269,19 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
     rw [zero_pow, MulZeroClass.mul_zero]
     apply pow_pos hp.1.Pos
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
+-/
 
+#print xInTermsOfW_zero /-
 @[simp]
 theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = X 0 := by
   rw [xInTermsOfW_eq, range_zero, sum_empty, pow_zero, C_1, mul_one, sub_zero]
 #align X_in_terms_of_W_zero xInTermsOfW_zero
+-/
 
 section PPrime
 
 variable [hp : Fact p.Prime]
 
-include hp
-
 #print xInTermsOfW_vars_aux /-
 theorem xInTermsOfW_vars_aux (n : ℕ) :
     n ∈ (xInTermsOfW p ℚ n).vars ∧ (xInTermsOfW p ℚ n).vars ⊆ range (n + 1) :=
@@ -306,12 +322,15 @@ theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range
 
 end PPrime
 
+#print xInTermsOfW_aux /-
 theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
     xInTermsOfW p R n * C (p ^ n : R) =
       X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i) :=
   by rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self, one_pow, C_1, mul_one]
 #align X_in_terms_of_W_aux xInTermsOfW_aux
+-/
 
+#print bind₁_xInTermsOfW_wittPolynomial /-
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     bind₁ (xInTermsOfW p R) (W_ R k) = X k :=
@@ -322,7 +341,9 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     xInTermsOfW_aux]
   simp only [C_pow, bind₁_X_right, sub_add_cancel]
 #align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomial
+-/
 
+#print bind₁_wittPolynomial_xInTermsOfW /-
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     bind₁ (W_ R) (xInTermsOfW p R n) = X n :=
@@ -340,4 +361,5 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     rw [mem_range] at h 
     simp only [AlgHom.map_mul, AlgHom.map_pow, alg_hom_C, H i h]
 #align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfW
+-/
 
Diff
@@ -330,7 +330,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
   apply Nat.strong_induction_on n
   clear n; intro n H
   rw [xInTermsOfW_eq, AlgHom.map_mul, AlgHom.map_sub, bind₁_X_right, alg_hom_C, AlgHom.map_sum]
-  have : (W_ R n - ∑ i in range n, C (p ^ i : R) * X i ^ p ^ (n - i)) = C (p ^ n : R) * X n := by
+  have : W_ R n - ∑ i in range n, C (p ^ i : R) * X i ^ p ^ (n - i) = C (p ^ n : R) * X n := by
     simp only [wittPolynomial_eq_sum_c_mul_x_pow, tsub_self, sum_range_succ_comm, pow_one,
       add_sub_cancel, pow_zero]
   rw [sum_congr rfl, this]
Diff
@@ -174,7 +174,7 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   intro k hk
   rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, alg_hom_C, ← pow_mul, ← pow_succ]
   congr
-  rw [mem_range] at hk
+  rw [mem_range] at hk 
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
 #align witt_polynomial_zmod_self wittPolynomial_zMod_self
 
@@ -249,7 +249,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
     sum_eq_zero]
   · simp only [constant_coeff_X, sub_zero, MulZeroClass.mul_zero]
   · intro m H
-    rw [mem_range] at H
+    rw [mem_range] at H 
     simp only [RingHom.map_mul, RingHom.map_pow, constant_coeff_C, IH m H]
     rw [zero_pow, MulZeroClass.mul_zero]
     apply pow_pos hp.1.Pos
@@ -284,14 +284,14 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
   all_goals
     intro H
     replace H := vars_sum_subset _ _ H
-    rw [mem_bUnion] at H
+    rw [mem_bUnion] at H 
     rcases H with ⟨j, hj, H⟩
-    rw [vars_C_mul] at H
+    rw [vars_C_mul] at H 
     swap
     · apply pow_ne_zero; exact_mod_cast hp.1.NeZero
-    rw [mem_range] at hj
+    rw [mem_range] at hj 
     replace H := (ih j hj).2 (vars_pow _ _ H)
-    rw [mem_range] at H
+    rw [mem_range] at H 
   · rw [mem_range]
     exact lt_of_lt_of_le H hj
   · exact lt_irrefl n (lt_of_lt_of_le H hj)
@@ -337,7 +337,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
   ·-- this is really slow for some reason
     rw [mul_right_comm, ← C_mul, ← mul_pow, mul_invOf_self, one_pow, C_1, one_mul]
   · intro i h
-    rw [mem_range] at h
+    rw [mem_range] at h 
     simp only [AlgHom.map_mul, AlgHom.map_pow, alg_hom_C, H i h]
 #align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfW
 
Diff
@@ -156,14 +156,11 @@ theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
     one_mul, pow_one, C_1, pow_zero]
 #align witt_polynomial_one wittPolynomial_one
 
-#print aeval_wittPolynomial /-
 theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
     aeval f (W_ R n) = ∑ i in range (n + 1), p ^ i * f i ^ p ^ (n - i) := by
   simp [wittPolynomial, AlgHom.map_sum, aeval_monomial, Finsupp.prod_single_index]
 #align aeval_witt_polynomial aeval_wittPolynomial
--/
 
-#print wittPolynomial_zMod_self /-
 /-- Over the ring `zmod (p^(n+1))`, we produce the `n+1`st Witt polynomial
 by expanding the `n`th Witt polynomial by `p`.
 -/
@@ -180,7 +177,6 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
 #align witt_polynomial_zmod_self wittPolynomial_zMod_self
--/
 
 section PPrime
 
Diff
@@ -70,7 +70,7 @@ open Finset hiding map
 
 open Finsupp (single)
 
-open BigOperators
+open scoped BigOperators
 
 attribute [-simp] coe_eval₂_hom
 
@@ -110,7 +110,7 @@ scoped[Witt] notation "W_" => wittPolynomial p
 -- Notation with ring of coefficients implicit
 scoped[Witt] notation "W" => wittPolynomial p hole!
 
-open Witt
+open scoped Witt
 
 open MvPolynomial
 
Diff
@@ -89,9 +89,6 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
 #align witt_polynomial wittPolynomial
 -/
 
-/- warning: witt_polynomial_eq_sum_C_mul_X_pow -> wittPolynomial_eq_sum_c_mul_x_pow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_powₓ'. -/
 theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
   by
@@ -124,9 +121,6 @@ section
 
 variable {R} {S : Type _} [CommRing S]
 
-/- warning: map_witt_polynomial -> map_wittPolynomial is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align map_witt_polynomial map_wittPolynomialₓ'. -/
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
   by
@@ -137,12 +131,6 @@ theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
 
 variable (R)
 
-/- warning: constant_coeff_witt_polynomial -> constantCoeff_wittPolynomial is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{succ u1} R (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> R) (RingHom.hasCoeToFun.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n)) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align constant_coeff_witt_polynomial constantCoeff_wittPolynomialₓ'. -/
 @[simp]
 theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
     constantCoeff (wittPolynomial p R n) = 0 :=
@@ -162,9 +150,6 @@ theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
 #align witt_polynomial_zero wittPolynomial_zero
 -/
 
-/- warning: witt_polynomial_one -> wittPolynomial_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align witt_polynomial_one wittPolynomial_oneₓ'. -/
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
   simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
@@ -203,12 +188,6 @@ variable [hp : NeZero p]
 
 include hp
 
-/- warning: witt_polynomial_vars -> wittPolynomial_vars is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : NeZero.{0} Nat Nat.hasZero p] [_inst_3 : CharZero.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))] (n : Nat), Eq.{1} (Finset.{0} Nat) (MvPolynomial.vars.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1 n)) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : NeZero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) p] [_inst_3 : CharZero.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))] (n : Nat), Eq.{1} (Finset.{0} Nat) (MvPolynomial.vars.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1 n)) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
-Case conversion may be inaccurate. Consider using '#align witt_polynomial_vars wittPolynomial_varsₓ'. -/
 theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars = range (n + 1) :=
   by
   have : ∀ i, (monomial (Finsupp.single i (p ^ (n - i))) (p ^ i : R)).vars = {i} :=
@@ -247,12 +226,6 @@ The polynomials `X_in_terms_of_W` give the coordinate transformation in the back
 -/
 
 
-/- warning: X_in_terms_of_W -> xInTermsOfW is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)], Nat -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)], Nat -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W xInTermsOfWₓ'. -/
 /-- The `X_in_terms_of_W p R n` is the polynomial on the basis of Witt polynomials
 that corresponds to the ordinary `X n`. -/
 noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
@@ -264,21 +237,12 @@ noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
       C (⅟ p ^ n : R)
 #align X_in_terms_of_W xInTermsOfW
 
-/- warning: X_in_terms_of_W_eq -> xInTermsOfW_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_eq xInTermsOfW_eqₓ'. -/
 theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} :
     xInTermsOfW p R n =
       (X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i)) * C (⅟ p ^ n : R) :=
   by rw [xInTermsOfW, ← Fin.sum_univ_eq_sum_range]
 #align X_in_terms_of_W_eq xInTermsOfW_eq
 
-/- warning: constant_coeff_X_in_terms_of_W -> constantCoeff_xInTermsOfW is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} R (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> R) (RingHom.hasCoeToFun.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfWₓ'. -/
 @[simp]
 theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n : ℕ) :
     constantCoeff (xInTermsOfW p R n) = 0 :=
@@ -295,12 +259,6 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
     apply pow_pos hp.1.Pos
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
 
-/- warning: X_in_terms_of_W_zero -> xInTermsOfW_zero is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
-Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_zero xInTermsOfW_zeroₓ'. -/
 @[simp]
 theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = X 0 := by
   rw [xInTermsOfW_eq, range_zero, sum_empty, pow_zero, C_1, mul_one, sub_zero]
@@ -352,18 +310,12 @@ theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range
 
 end PPrime
 
-/- warning: X_in_terms_of_W_aux -> xInTermsOfW_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_aux xInTermsOfW_auxₓ'. -/
 theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
     xInTermsOfW p R n * C (p ^ n : R) =
       X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i) :=
   by rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self, one_pow, C_1, mul_one]
 #align X_in_terms_of_W_aux xInTermsOfW_aux
 
-/- warning: bind₁_X_in_terms_of_W_witt_polynomial -> bind₁_xInTermsOfW_wittPolynomial is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomialₓ'. -/
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     bind₁ (xInTermsOfW p R) (W_ R k) = X k :=
@@ -375,9 +327,6 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
   simp only [C_pow, bind₁_X_right, sub_add_cancel]
 #align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomial
 
-/- warning: bind₁_witt_polynomial_X_in_terms_of_W -> bind₁_wittPolynomial_xInTermsOfW is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfWₓ'. -/
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     bind₁ (W_ R) (xInTermsOfW p R n) = X n :=
Diff
@@ -334,8 +334,7 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
     rcases H with ⟨j, hj, H⟩
     rw [vars_C_mul] at H
     swap
-    · apply pow_ne_zero
-      exact_mod_cast hp.1.NeZero
+    · apply pow_ne_zero; exact_mod_cast hp.1.NeZero
     rw [mem_range] at hj
     replace H := (ih j hj).2 (vars_pow _ _ H)
     rw [mem_range] at H
@@ -384,8 +383,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     bind₁ (W_ R) (xInTermsOfW p R n) = X n :=
   by
   apply Nat.strong_induction_on n
-  clear n
-  intro n H
+  clear n; intro n H
   rw [xInTermsOfW_eq, AlgHom.map_mul, AlgHom.map_sub, bind₁_X_right, alg_hom_C, AlgHom.map_sum]
   have : (W_ R n - ∑ i in range n, C (p ^ i : R) * X i ^ p ^ (n - i)) = C (p ^ n : R) * X n := by
     simp only [wittPolynomial_eq_sum_c_mul_x_pow, tsub_self, sum_range_succ_comm, pow_one,
Diff
@@ -90,10 +90,7 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
 -/
 
 /- warning: witt_polynomial_eq_sum_C_mul_X_pow -> wittPolynomial_eq_sum_c_mul_x_pow is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i)))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_powₓ'. -/
 theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
@@ -128,10 +125,7 @@ section
 variable {R} {S : Type _} [CommRing S]
 
 /- warning: map_witt_polynomial -> map_wittPolynomial is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (n : Nat), Eq.{succ u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) (fun (_x : RingHom.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2))) (RingHom.hasCoeToFun.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) (MvPolynomial.map.{u1, u2, 0} R S Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} S _inst_2) f) (wittPolynomial.{u1} p R _inst_1 n)) (wittPolynomial.{u2} p S _inst_2 n)
-but is expected to have type
-  forall (p : Nat) {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (wittPolynomial.{u2} p R _inst_1 n)) (FunLike.coe.{max (max (succ u2) (succ u1)) 1, succ u2, succ u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (fun (_x : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (MvPolynomial.map.{u2, u1, 0} R S Nat (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} S _inst_2) f) (wittPolynomial.{u2} p R _inst_1 n)) (wittPolynomial.{u1} p S _inst_2 n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align map_witt_polynomial map_wittPolynomialₓ'. -/
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
@@ -169,10 +163,7 @@ theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
 -/
 
 /- warning: witt_polynomial_one -> wittPolynomial_one is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHAdd.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) p))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) p))
+<too large>
 Case conversion may be inaccurate. Consider using '#align witt_polynomial_one wittPolynomial_oneₓ'. -/
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
@@ -274,10 +265,7 @@ noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
 #align X_in_terms_of_W xInTermsOfW
 
 /- warning: X_in_terms_of_W_eq -> xInTermsOfW_eq is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] {n : Nat}, Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SubNegMonoid.toHasSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroup.toSubNegMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroupWithOne.toAddGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toAddCommGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Invertible.invOf.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) _inst_2) n)))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] {n : Nat}, Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Invertible.invOf.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) _inst_2) n)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Invertible.invOf.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) _inst_2) n)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_eq xInTermsOfW_eqₓ'. -/
 theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} :
     xInTermsOfW p R n =
@@ -366,10 +354,7 @@ theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range
 end PPrime
 
 /- warning: X_in_terms_of_W_aux -> xInTermsOfW_aux is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) n))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SubNegMonoid.toHasSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroup.toSubNegMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroupWithOne.toAddGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toAddCommGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i))))))
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) n)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) n))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_aux xInTermsOfW_auxₓ'. -/
 theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
     xInTermsOfW p R n * C (p ^ n : R) =
@@ -378,10 +363,7 @@ theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
 #align X_in_terms_of_W_aux xInTermsOfW_aux
 
 /- warning: bind₁_X_in_terms_of_W_witt_polynomial -> bind₁_xInTermsOfW_wittPolynomial is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (k : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (k : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 k)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
+<too large>
 Case conversion may be inaccurate. Consider using '#align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomialₓ'. -/
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
@@ -395,10 +377,7 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
 #align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomial
 
 /- warning: bind₁_witt_polynomial_X_in_terms_of_W -> bind₁_wittPolynomial_xInTermsOfW is a dubious translation:
-lean 3 declaration is
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
-but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfWₓ'. -/
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
Diff
@@ -381,7 +381,7 @@ theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
 lean 3 declaration is
   forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (k : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
 but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (k : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 k)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (k : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 k)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
 Case conversion may be inaccurate. Consider using '#align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomialₓ'. -/
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
@@ -398,7 +398,7 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
 lean 3 declaration is
   forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
 but is expected to have type
-  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
 Case conversion may be inaccurate. Consider using '#align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfWₓ'. -/
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 
 ! This file was ported from Lean 3 source module ring_theory.witt_vector.witt_polynomial
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.Data.Zmod.Basic
 /-!
 # Witt polynomials
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 To endow `witt_vector p R` with a ring structure,
 we need to study the so-called Witt polynomials.
 
Diff
@@ -75,6 +75,7 @@ variable (p : ℕ)
 
 variable (R : Type _) [CommRing R]
 
+#print wittPolynomial /-
 /-- `witt_polynomial p R n` is the `n`-th Witt polynomial
 with respect to a prime `p` with coefficients in a commutative ring `R`.
 It is defined as:
@@ -83,7 +84,14 @@ It is defined as:
 noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
   ∑ i in range (n + 1), monomial (single i (p ^ (n - i))) (p ^ i : R)
 #align witt_polynomial wittPolynomial
+-/
 
+/- warning: witt_polynomial_eq_sum_C_mul_X_pow -> wittPolynomial_eq_sum_c_mul_x_pow is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i)))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i)))))
+Case conversion may be inaccurate. Consider using '#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_powₓ'. -/
 theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
   by
@@ -116,6 +124,12 @@ section
 
 variable {R} {S : Type _} [CommRing S]
 
+/- warning: map_witt_polynomial -> map_wittPolynomial is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {S : Type.{u2}} [_inst_2 : CommRing.{u2} S] (f : RingHom.{u1, u2} R S (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} S (Ring.toNonAssocRing.{u2} S (CommRing.toRing.{u2} S _inst_2)))) (n : Nat), Eq.{succ u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) (fun (_x : RingHom.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2))) (RingHom.hasCoeToFun.{u1, u2} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat S (CommRing.toCommSemiring.{u2} S _inst_2)) (MvPolynomial.commSemiring.{u2, 0} S Nat (CommRing.toCommSemiring.{u2} S _inst_2))))) (MvPolynomial.map.{u1, u2, 0} R S Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u2} S _inst_2) f) (wittPolynomial.{u1} p R _inst_1 n)) (wittPolynomial.{u2} p S _inst_2 n)
+but is expected to have type
+  forall (p : Nat) {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {S : Type.{u1}} [_inst_2 : CommRing.{u1} S] (f : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_2)))) (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (wittPolynomial.{u2} p R _inst_1 n)) (FunLike.coe.{max (max (succ u2) (succ u1)) 1, succ u2, succ u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (fun (_x : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) => MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2))))) (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (Semiring.toNonAssocSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} (MvPolynomial.{0, u2} Nat R (CommRing.toCommSemiring.{u2} R _inst_1)) (MvPolynomial.commSemiring.{u2, 0} R Nat (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat S (CommRing.toCommSemiring.{u1} S _inst_2)) (MvPolynomial.commSemiring.{u1, 0} S Nat (CommRing.toCommSemiring.{u1} S _inst_2)))))))) (MvPolynomial.map.{u2, u1, 0} R S Nat (CommRing.toCommSemiring.{u2} R _inst_1) (CommRing.toCommSemiring.{u1} S _inst_2) f) (wittPolynomial.{u2} p R _inst_1 n)) (wittPolynomial.{u1} p S _inst_2 n)
+Case conversion may be inaccurate. Consider using '#align map_witt_polynomial map_wittPolynomialₓ'. -/
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
   by
@@ -126,6 +140,12 @@ theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n :=
 
 variable (R)
 
+/- warning: constant_coeff_witt_polynomial -> constantCoeff_wittPolynomial is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{succ u1} R (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> R) (RingHom.hasCoeToFun.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n)) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 n)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (wittPolynomial.{u1} p R _inst_1 n)) _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align constant_coeff_witt_polynomial constantCoeff_wittPolynomialₓ'. -/
 @[simp]
 theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
     constantCoeff (wittPolynomial p R n) = 0 :=
@@ -138,22 +158,33 @@ theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
   exact ne_of_gt (pow_pos hp.1.Pos _)
 #align constant_coeff_witt_polynomial constantCoeff_wittPolynomial
 
+#print wittPolynomial_zero /-
 @[simp]
 theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
   simp only [wittPolynomial, X, sum_singleton, range_one, pow_zero]
 #align witt_polynomial_zero wittPolynomial_zero
+-/
 
+/- warning: witt_polynomial_one -> wittPolynomial_one is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (HAdd.hAdd.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHAdd.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) p))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) p))
+Case conversion may be inaccurate. Consider using '#align witt_polynomial_one wittPolynomial_oneₓ'. -/
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
   simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
     one_mul, pow_one, C_1, pow_zero]
 #align witt_polynomial_one wittPolynomial_one
 
+#print aeval_wittPolynomial /-
 theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
     aeval f (W_ R n) = ∑ i in range (n + 1), p ^ i * f i ^ p ^ (n - i) := by
   simp [wittPolynomial, AlgHom.map_sum, aeval_monomial, Finsupp.prod_single_index]
 #align aeval_witt_polynomial aeval_wittPolynomial
+-/
 
+#print wittPolynomial_zMod_self /-
 /-- Over the ring `zmod (p^(n+1))`, we produce the `n+1`st Witt polynomial
 by expanding the `n`th Witt polynomial by `p`.
 -/
@@ -170,6 +201,7 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (nat.lt_succ_iff.mp hk), ← add_comm]
 #align witt_polynomial_zmod_self wittPolynomial_zMod_self
+-/
 
 section PPrime
 
@@ -177,6 +209,12 @@ variable [hp : NeZero p]
 
 include hp
 
+/- warning: witt_polynomial_vars -> wittPolynomial_vars is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : NeZero.{0} Nat Nat.hasZero p] [_inst_3 : CharZero.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))] (n : Nat), Eq.{1} (Finset.{0} Nat) (MvPolynomial.vars.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1 n)) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : NeZero.{0} Nat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) p] [_inst_3 : CharZero.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))] (n : Nat), Eq.{1} (Finset.{0} Nat) (MvPolynomial.vars.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1 n)) (Finset.range (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+Case conversion may be inaccurate. Consider using '#align witt_polynomial_vars wittPolynomial_varsₓ'. -/
 theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars = range (n + 1) :=
   by
   have : ∀ i, (monomial (Finsupp.single i (p ^ (n - i))) (p ^ i : R)).vars = {i} :=
@@ -193,11 +231,13 @@ theorem wittPolynomial_vars [CharZero R] (n : ℕ) : (wittPolynomial p R n).vars
     rwa [mem_singleton]
 #align witt_polynomial_vars wittPolynomial_vars
 
+#print wittPolynomial_vars_subset /-
 theorem wittPolynomial_vars_subset (n : ℕ) : (wittPolynomial p R n).vars ⊆ range (n + 1) :=
   by
   rw [← map_wittPolynomial p (Int.castRingHom R), ← wittPolynomial_vars p ℤ]
   apply vars_map
 #align witt_polynomial_vars_subset wittPolynomial_vars_subset
+-/
 
 end PPrime
 
@@ -213,6 +253,12 @@ The polynomials `X_in_terms_of_W` give the coordinate transformation in the back
 -/
 
 
+/- warning: X_in_terms_of_W -> xInTermsOfW is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)], Nat -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)], Nat -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W xInTermsOfWₓ'. -/
 /-- The `X_in_terms_of_W p R n` is the polynomial on the basis of Witt polynomials
 that corresponds to the ordinary `X n`. -/
 noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
@@ -224,12 +270,24 @@ noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
       C (⅟ p ^ n : R)
 #align X_in_terms_of_W xInTermsOfW
 
+/- warning: X_in_terms_of_W_eq -> xInTermsOfW_eq is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] {n : Nat}, Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SubNegMonoid.toHasSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroup.toSubNegMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroupWithOne.toAddGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toAddCommGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Invertible.invOf.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) _inst_2) n)))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] {n : Nat}, Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Invertible.invOf.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) _inst_2) n)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Invertible.invOf.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) _inst_2) n)))
+Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_eq xInTermsOfW_eqₓ'. -/
 theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} :
     xInTermsOfW p R n =
       (X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i)) * C (⅟ p ^ n : R) :=
   by rw [xInTermsOfW, ← Fin.sum_univ_eq_sum_range]
 #align X_in_terms_of_W_eq xInTermsOfW_eq
 
+/- warning: constant_coeff_X_in_terms_of_W -> constantCoeff_xInTermsOfW is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} R (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> R) (RingHom.hasCoeToFun.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [hp : Fact (Nat.Prime p)] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.instRingHomClassRingHom.{u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) R (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (MvPolynomial.constantCoeff.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommMonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommSemiring.toCommMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => R) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfWₓ'. -/
 @[simp]
 theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n : ℕ) :
     constantCoeff (xInTermsOfW p R n) = 0 :=
@@ -246,6 +304,12 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
     apply pow_pos hp.1.Pos
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
 
+/- warning: X_in_terms_of_W_zero -> xInTermsOfW_zero is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)], Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_zero xInTermsOfW_zeroₓ'. -/
 @[simp]
 theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = X 0 := by
   rw [xInTermsOfW_eq, range_zero, sum_empty, pow_zero, C_1, mul_one, sub_zero]
@@ -257,6 +321,7 @@ variable [hp : Fact p.Prime]
 
 include hp
 
+#print xInTermsOfW_vars_aux /-
 theorem xInTermsOfW_vars_aux (n : ℕ) :
     n ∈ (xInTermsOfW p ℚ n).vars ∧ (xInTermsOfW p ℚ n).vars ⊆ range (n + 1) :=
   by
@@ -287,19 +352,34 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
     exact lt_of_lt_of_le H hj
   · exact lt_irrefl n (lt_of_lt_of_le H hj)
 #align X_in_terms_of_W_vars_aux xInTermsOfW_vars_aux
+-/
 
+#print xInTermsOfW_vars_subset /-
 theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range (n + 1) :=
   (xInTermsOfW_vars_aux p n).2
 #align X_in_terms_of_W_vars_subset xInTermsOfW_vars_subset
+-/
 
 end PPrime
 
+/- warning: X_in_terms_of_W_aux -> xInTermsOfW_aux is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) n))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SubNegMonoid.toHasSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroup.toSubNegMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddGroupWithOne.toAddGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toAddCommGroupWithOne.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (AddCommGroup.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Distrib.toHasMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toDistrib.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) => R -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHom.hasCoeToFun.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R Nat _inst_1))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) n i))))))
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HMul.hMul.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) n)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) n))) (HSub.hSub.{u1, u1, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSub.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n) (Finset.sum.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toNonAssocRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (Finset.range n) (fun (i : Nat) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (CommRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R Nat _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.C.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p) i)) (HPow.hPow.{u1, 0, u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (instHPow.{u1, 0} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) Nat (Monoid.Pow.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toMonoidWithZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (xInTermsOfW.{u1} p R _inst_1 _inst_2 i) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) p (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) n i))))))
+Case conversion may be inaccurate. Consider using '#align X_in_terms_of_W_aux xInTermsOfW_auxₓ'. -/
 theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
     xInTermsOfW p R n * C (p ^ n : R) =
       X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i) :=
   by rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self, one_pow, C_1, mul_one]
 #align X_in_terms_of_W_aux xInTermsOfW_aux
 
+/- warning: bind₁_X_in_terms_of_W_witt_polynomial -> bind₁_xInTermsOfW_wittPolynomial is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (k : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (k : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (wittPolynomial.{u1} p R _inst_1 k)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (xInTermsOfW.{u1} p R _inst_1 _inst_2)) (wittPolynomial.{u1} p R _inst_1 k)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) k)
+Case conversion may be inaccurate. Consider using '#align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomialₓ'. -/
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     bind₁ (xInTermsOfW p R) (W_ R k) = X k :=
@@ -311,6 +391,12 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
   simp only [C_pow, bind₁_X_right, sub_add_cancel]
 #align bind₁_X_in_terms_of_W_witt_polynomial bind₁_xInTermsOfW_wittPolynomial
 
+/- warning: bind₁_witt_polynomial_X_in_terms_of_W -> bind₁_wittPolynomial_xInTermsOfW is a dubious translation:
+lean 3 declaration is
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat R (HasLiftT.mk.{1, succ u1} Nat R (CoeTCₓ.coe.{1, succ u1} Nat R (Nat.castCoe.{u1} R (AddMonoidWithOne.toNatCast.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) p)] (n : Nat), Eq.{succ u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) -> (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1))) ([anonymous].{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
+but is expected to have type
+  forall (p : Nat) (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] [_inst_2 : Invertible.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Nat.cast.{u1} R (Semiring.toNatCast.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) p)] (n : Nat), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) => MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, u1} R (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} Nat R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R Nat (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (MvPolynomial.bind₁.{0, 0, u1} Nat Nat R (CommRing.toCommSemiring.{u1} R _inst_1) (wittPolynomial.{u1} p R _inst_1)) (xInTermsOfW.{u1} p R _inst_1 _inst_2 n)) (MvPolynomial.X.{u1, 0} R Nat (CommRing.toCommSemiring.{u1} R _inst_1) n)
+Case conversion may be inaccurate. Consider using '#align bind₁_witt_polynomial_X_in_terms_of_W bind₁_wittPolynomial_xInTermsOfWₓ'. -/
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     bind₁ (W_ R) (xInTermsOfW p R n) = X n :=
Diff
@@ -85,7 +85,7 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
 #align witt_polynomial wittPolynomial
 
 theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
-    wittPolynomial p R n = ∑ i in range (n + 1), c (p ^ i : R) * x i ^ p ^ (n - i) :=
+    wittPolynomial p R n = ∑ i in range (n + 1), C (p ^ i : R) * X i ^ p ^ (n - i) :=
   by
   apply sum_congr rfl
   rintro i -
@@ -139,12 +139,12 @@ theorem constantCoeff_wittPolynomial [hp : Fact p.Prime] (n : ℕ) :
 #align constant_coeff_witt_polynomial constantCoeff_wittPolynomial
 
 @[simp]
-theorem wittPolynomial_zero : wittPolynomial p R 0 = x 0 := by
+theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
   simp only [wittPolynomial, X, sum_singleton, range_one, pow_zero]
 #align witt_polynomial_zero wittPolynomial_zero
 
 @[simp]
-theorem wittPolynomial_one : wittPolynomial p R 1 = c ↑p * x 1 + x 0 ^ p := by
+theorem wittPolynomial_one : wittPolynomial p R 1 = C ↑p * X 1 + X 0 ^ p := by
   simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
     one_mul, pow_one, C_1, pow_zero]
 #align witt_polynomial_one wittPolynomial_one
@@ -217,16 +217,16 @@ The polynomials `X_in_terms_of_W` give the coordinate transformation in the back
 that corresponds to the ordinary `X n`. -/
 noncomputable def xInTermsOfW [Invertible (p : R)] : ℕ → MvPolynomial ℕ R
   | n =>
-    (x n -
+    (X n -
         ∑ i : Fin n,
           have := i.2
-          c (p ^ (i : ℕ) : R) * xInTermsOfW i ^ p ^ (n - i)) *
-      c (⅟ p ^ n : R)
+          C (p ^ (i : ℕ) : R) * xInTermsOfW i ^ p ^ (n - i)) *
+      C (⅟ p ^ n : R)
 #align X_in_terms_of_W xInTermsOfW
 
 theorem xInTermsOfW_eq [Invertible (p : R)] {n : ℕ} :
     xInTermsOfW p R n =
-      (x n - ∑ i in range n, c (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i)) * c (⅟ p ^ n : R) :=
+      (X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i)) * C (⅟ p ^ n : R) :=
   by rw [xInTermsOfW, ← Fin.sum_univ_eq_sum_range]
 #align X_in_terms_of_W_eq xInTermsOfW_eq
 
@@ -247,7 +247,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
 
 @[simp]
-theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = x 0 := by
+theorem xInTermsOfW_zero [Invertible (p : R)] : xInTermsOfW p R 0 = X 0 := by
   rw [xInTermsOfW_eq, range_zero, sum_empty, pow_zero, C_1, mul_one, sub_zero]
 #align X_in_terms_of_W_zero xInTermsOfW_zero
 
@@ -295,14 +295,14 @@ theorem xInTermsOfW_vars_subset (n : ℕ) : (xInTermsOfW p ℚ n).vars ⊆ range
 end PPrime
 
 theorem xInTermsOfW_aux [Invertible (p : R)] (n : ℕ) :
-    xInTermsOfW p R n * c (p ^ n : R) =
-      x n - ∑ i in range n, c (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i) :=
+    xInTermsOfW p R n * C (p ^ n : R) =
+      X n - ∑ i in range n, C (p ^ i : R) * xInTermsOfW p R i ^ p ^ (n - i) :=
   by rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self, one_pow, C_1, mul_one]
 #align X_in_terms_of_W_aux xInTermsOfW_aux
 
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
-    bind₁ (xInTermsOfW p R) (W_ R k) = x k :=
+    bind₁ (xInTermsOfW p R) (W_ R k) = X k :=
   by
   rw [wittPolynomial_eq_sum_c_mul_x_pow, AlgHom.map_sum]
   simp only [AlgHom.map_pow, C_pow, AlgHom.map_mul, alg_hom_C]
@@ -313,7 +313,7 @@ theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
 
 @[simp]
 theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
-    bind₁ (W_ R) (xInTermsOfW p R n) = x n :=
+    bind₁ (W_ R) (xInTermsOfW p R n) = X n :=
   by
   apply Nat.strong_induction_on n
   clear n
Diff
@@ -163,7 +163,7 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   by
   simp only [wittPolynomial_eq_sum_c_mul_x_pow]
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
-    zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
+    MulZeroClass.zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
   rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, alg_hom_C, ← pow_mul, ← pow_succ]
   congr
@@ -238,11 +238,11 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
   intro n IH
   rw [xInTermsOfW_eq, mul_comm, RingHom.map_mul, RingHom.map_sub, RingHom.map_sum, constant_coeff_C,
     sum_eq_zero]
-  · simp only [constant_coeff_X, sub_zero, mul_zero]
+  · simp only [constant_coeff_X, sub_zero, MulZeroClass.mul_zero]
   · intro m H
     rw [mem_range] at H
     simp only [RingHom.map_mul, RingHom.map_pow, constant_coeff_C, IH m H]
-    rw [zero_pow, mul_zero]
+    rw [zero_pow, MulZeroClass.mul_zero]
     apply pow_pos hp.1.Pos
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
 

Changes in mathlib4

mathlib3
mathlib4
doc: convert many comments into doc comments (#11940)

All of these changes appear to be oversights to me.

Diff
@@ -107,7 +107,7 @@ open Witt
 
 open MvPolynomial
 
-/- The first observation is that the Witt polynomial doesn't really depend on the coefficient ring.
+/-! The first observation is that the Witt polynomial doesn't really depend on the coefficient ring.
 If we map the coefficients through a ring homomorphism, we obtain the corresponding Witt polynomial
 over the target ring. -/
 section
@@ -151,8 +151,7 @@ theorem aeval_wittPolynomial {A : Type*} [CommRing A] [Algebra R A] (f : ℕ →
 #align aeval_witt_polynomial aeval_wittPolynomial
 
 /-- Over the ring `ZMod (p^(n+1))`, we produce the `n+1`st Witt polynomial
-by expanding the `n`th Witt polynomial by `p`.
--/
+by expanding the `n`th Witt polynomial by `p`. -/
 @[simp]
 theorem wittPolynomial_zmod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) := by
chore: remove mathport name: <expression> lines (#11928)

Quoting [@digama0](https://github.com/digama0):

These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them.

Diff
@@ -93,13 +93,11 @@ set_option linter.uppercaseLean3 false in
 This allows us to simply write `W n` or `W_ ℤ n`. -/
 
 
--- mathport name: witt_polynomial
 -- Notation with ring of coefficients explicit
 set_option quotPrecheck false in
 @[inherit_doc]
 scoped[Witt] notation "W_" => wittPolynomial p
 
--- mathport name: witt_polynomial.infer
 -- Notation with ring of coefficients implicit
 set_option quotPrecheck false in
 @[inherit_doc]
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
@@ -4,10 +4,10 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
 -/
 import Mathlib.Algebra.CharP.Invertible
+import Mathlib.Algebra.MvPolynomial.Variables
+import Mathlib.Algebra.MvPolynomial.CommRing
+import Mathlib.Algebra.MvPolynomial.Expand
 import Mathlib.Data.Fintype.BigOperators
-import Mathlib.Data.MvPolynomial.Variables
-import Mathlib.Data.MvPolynomial.CommRing
-import Mathlib.Data.MvPolynomial.Expand
 import Mathlib.Data.ZMod.Basic
 
 #align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -162,7 +162,7 @@ theorem wittPolynomial_zmod_self (n : ℕ) :
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
     zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
-  rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, algHom_C, ← pow_mul, ← pow_succ]
+  rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, algHom_C, ← pow_mul, ← pow_succ']
   congr
   rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (Nat.lt_succ_iff.mp hk), ← add_comm]
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -69,7 +69,6 @@ open BigOperators
 --attribute [-simp] coe_eval₂_hom
 
 variable (p : ℕ)
-
 variable (R : Type*) [CommRing R] [DecidableEq R]
 
 /-- `wittPolynomial p R n` is the `n`-th Witt polynomial
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -229,7 +229,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
   intro n IH
   rw [xInTermsOfW_eq, mul_comm, RingHom.map_mul, RingHom.map_sub, map_sum, constantCoeff_C,
     constantCoeff_X, zero_sub, mul_neg, neg_eq_zero]
-  -- porting note: here, we should be able to do `rw [sum_eq_zero]`, but the goal that
+  -- Porting note: here, we should be able to do `rw [sum_eq_zero]`, but the goal that
   -- is created is not what we expect, and the sum is not replaced by zero...
   -- is it a bug in `rw` tactic?
   refine' Eq.trans (_ : _ = ((⅟↑p : R) ^ n)* 0) (mul_zero _)
refactor: optimize proofs with omega (#11093)

I ran tryAtEachStep on all files under Mathlib to find all locations where omega succeeds. For each that was a linarith without an only, I tried replacing it with omega, and I verified that elaboration time got smaller. (In almost all cases, there was a noticeable speedup.) I also replaced some slow aesops along the way.

Diff
@@ -278,8 +278,8 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
     replace H := (ih j hj).2 (vars_pow _ _ H)
     rw [mem_range] at H
   · rw [mem_range]
-    linarith
-  · linarith
+    omega
+  · omega
 set_option linter.uppercaseLean3 false in
 #align X_in_terms_of_W_vars_aux xInTermsOfW_vars_aux
 
feat: The support of f ^ n (#9617)

This involves moving lemmas from Algebra.GroupPower.Ring to Algebra.GroupWithZero.Basic and changing some 0 < n assumptions to n ≠ 0.

From LeanAPAP

Diff
@@ -239,7 +239,7 @@ theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n :
   rw [mem_range] at H
   simp only [RingHom.map_mul, RingHom.map_pow, map_natCast, IH m H]
   rw [zero_pow, mul_zero]
-  apply pow_pos hp.1.pos
+  exact pow_ne_zero _ hp.1.ne_zero
 set_option linter.uppercaseLean3 false in
 #align constant_coeff_X_in_terms_of_W constantCoeff_xInTermsOfW
 
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -97,11 +97,13 @@ This allows us to simply write `W n` or `W_ ℤ n`. -/
 -- mathport name: witt_polynomial
 -- Notation with ring of coefficients explicit
 set_option quotPrecheck false in
+@[inherit_doc]
 scoped[Witt] notation "W_" => wittPolynomial p
 
 -- mathport name: witt_polynomial.infer
 -- Notation with ring of coefficients implicit
 set_option quotPrecheck false in
+@[inherit_doc]
 scoped[Witt] notation "W" => wittPolynomial p _
 
 open Witt
chore: replace exact_mod_cast tactic with mod_cast elaborator where possible (#8404)

We still have the exact_mod_cast tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast are the ones that don't work using the term elaborator by itself.

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

Diff
@@ -271,7 +271,7 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
     rw [vars_C_mul] at H
     swap
     · apply pow_ne_zero
-      exact_mod_cast hp.1.ne_zero
+      exact mod_cast hp.1.ne_zero
     rw [mem_range] at hj
     replace H := (ih j hj).2 (vars_pow _ _ H)
     rw [mem_range] at H
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -159,7 +159,7 @@ theorem wittPolynomial_zmod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) := by
   simp only [wittPolynomial_eq_sum_C_mul_X_pow]
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
-    MulZeroClass.zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
+    zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
   rw [AlgHom.map_mul, AlgHom.map_pow, expand_X, algHom_C, ← pow_mul, ← pow_succ]
   congr
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
@@ -70,7 +70,7 @@ open BigOperators
 
 variable (p : ℕ)
 
-variable (R : Type _) [CommRing R] [DecidableEq R]
+variable (R : Type*) [CommRing R] [DecidableEq R]
 
 /-- `wittPolynomial p R n` is the `n`-th Witt polynomial
 with respect to a prime `p` with coefficients in a commutative ring `R`.
@@ -113,7 +113,7 @@ If we map the coefficients through a ring homomorphism, we obtain the correspond
 over the target ring. -/
 section
 
-variable {R} {S : Type _} [CommRing S]
+variable {R} {S : Type*} [CommRing S]
 
 @[simp]
 theorem map_wittPolynomial (f : R →+* S) (n : ℕ) : map f (W n) = W n := by
@@ -146,7 +146,7 @@ theorem wittPolynomial_one : wittPolynomial p R 1 = C (p : R) * X 1 + X 0 ^ p :=
     one_mul, pow_one, C_1, pow_zero, tsub_self, tsub_zero]
 #align witt_polynomial_one wittPolynomial_one
 
-theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
+theorem aeval_wittPolynomial {A : Type*} [CommRing A] [Algebra R A] (f : ℕ → A) (n : ℕ) :
     aeval f (W_ R n) = ∑ i in range (n + 1), (p : A) ^ i * f i ^ p ^ (n - i) := by
   simp [wittPolynomial, AlgHom.map_sum, aeval_monomial, Finsupp.prod_single_index]
 #align aeval_witt_polynomial aeval_wittPolynomial
chore: tidy various files (#6291)
Diff
@@ -155,7 +155,7 @@ theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ 
 by expanding the `n`th Witt polynomial by `p`.
 -/
 @[simp]
-theorem wittPolynomial_zMod_self (n : ℕ) :
+theorem wittPolynomial_zmod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) := by
   simp only [wittPolynomial_eq_sum_C_mul_X_pow]
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
@@ -165,7 +165,7 @@ theorem wittPolynomial_zMod_self (n : ℕ) :
   congr
   rw [mem_range] at hk
   rw [add_comm, add_tsub_assoc_of_le (Nat.lt_succ_iff.mp hk), ← add_comm]
-#align witt_polynomial_zmod_self wittPolynomial_zMod_self
+#align witt_polynomial_zmod_self wittPolynomial_zmod_self
 
 section PPrime
 
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,11 +2,6 @@
 Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Robert Y. Lewis
-
-! This file was ported from Lean 3 source module ring_theory.witt_vector.witt_polynomial
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.CharP.Invertible
 import Mathlib.Data.Fintype.BigOperators
@@ -15,6 +10,8 @@ import Mathlib.Data.MvPolynomial.CommRing
 import Mathlib.Data.MvPolynomial.Expand
 import Mathlib.Data.ZMod.Basic
 
+#align_import ring_theory.witt_vector.witt_polynomial from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
+
 /-!
 # Witt polynomials
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -226,7 +226,7 @@ set_option linter.uppercaseLean3 false in
 @[simp]
 theorem constantCoeff_xInTermsOfW [hp : Fact p.Prime] [Invertible (p : R)] (n : ℕ) :
     constantCoeff (xInTermsOfW p R n) = 0 := by
-  apply Nat.strongInductionOn n ; clear n
+  apply Nat.strongInductionOn n; clear n
   intro n IH
   rw [xInTermsOfW_eq, mul_comm, RingHom.map_mul, RingHom.map_sub, map_sum, constantCoeff_C,
     constantCoeff_X, zero_sub, mul_neg, neg_eq_zero]
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -273,14 +273,14 @@ theorem xInTermsOfW_vars_aux (n : ℕ) :
     rcases H with ⟨j, hj, H⟩
     rw [vars_C_mul] at H
     swap
-    . apply pow_ne_zero
+    · apply pow_ne_zero
       exact_mod_cast hp.1.ne_zero
     rw [mem_range] at hj
     replace H := (ih j hj).2 (vars_pow _ _ H)
     rw [mem_range] at H
-  . rw [mem_range]
+  · rw [mem_range]
     linarith
-  . linarith
+  · linarith
 set_option linter.uppercaseLean3 false in
 #align X_in_terms_of_W_vars_aux xInTermsOfW_vars_aux
 
feat: port RingTheory.WittVector.MulCoeff (#5554)
Diff
@@ -84,14 +84,14 @@ noncomputable def wittPolynomial (n : ℕ) : MvPolynomial ℕ R :=
   ∑ i in range (n + 1), monomial (single i (p ^ (n - i))) ((p : R) ^ i)
 #align witt_polynomial wittPolynomial
 
-theorem wittPolynomial_eq_sum_c_mul_x_pow (n : ℕ) :
+theorem wittPolynomial_eq_sum_C_mul_X_pow (n : ℕ) :
     wittPolynomial p R n = ∑ i in range (n + 1), C ((p : R) ^ i) * X i ^ p ^ (n - i) := by
   apply sum_congr rfl
   rintro i -
   rw [monomial_eq, Finsupp.prod_single_index]
   rw [pow_zero]
 set_option linter.uppercaseLean3 false in
-#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_c_mul_x_pow
+#align witt_polynomial_eq_sum_C_mul_X_pow wittPolynomial_eq_sum_C_mul_X_pow
 
 /-! We set up notation locally to this file, to keep statements short and comprehensible.
 This allows us to simply write `W n` or `W_ ℤ n`. -/
@@ -145,7 +145,7 @@ theorem wittPolynomial_zero : wittPolynomial p R 0 = X 0 := by
 
 @[simp]
 theorem wittPolynomial_one : wittPolynomial p R 1 = C (p : R) * X 1 + X 0 ^ p := by
-  simp only [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm, range_one, sum_singleton,
+  simp only [wittPolynomial_eq_sum_C_mul_X_pow, sum_range_succ_comm, range_one, sum_singleton,
     one_mul, pow_one, C_1, pow_zero, tsub_self, tsub_zero]
 #align witt_polynomial_one wittPolynomial_one
 
@@ -160,7 +160,7 @@ by expanding the `n`th Witt polynomial by `p`.
 @[simp]
 theorem wittPolynomial_zMod_self (n : ℕ) :
     W_ (ZMod (p ^ (n + 1))) (n + 1) = expand p (W_ (ZMod (p ^ (n + 1))) n) := by
-  simp only [wittPolynomial_eq_sum_c_mul_x_pow]
+  simp only [wittPolynomial_eq_sum_C_mul_X_pow]
   rw [sum_range_succ, ← Nat.cast_pow, CharP.cast_eq_zero (ZMod (p ^ (n + 1))) (p ^ (n + 1)), C_0,
     MulZeroClass.zero_mul, add_zero, AlgHom.map_sum, sum_congr rfl]
   intro k hk
@@ -302,7 +302,7 @@ set_option linter.uppercaseLean3 false in
 @[simp]
 theorem bind₁_xInTermsOfW_wittPolynomial [Invertible (p : R)] (k : ℕ) :
     bind₁ (xInTermsOfW p R) (W_ R k) = X k := by
-  rw [wittPolynomial_eq_sum_c_mul_x_pow, AlgHom.map_sum]
+  rw [wittPolynomial_eq_sum_C_mul_X_pow, AlgHom.map_sum]
   simp only [Nat.cast_pow, AlgHom.map_pow, C_pow, AlgHom.map_mul, algHom_C]
   rw [sum_range_succ_comm, tsub_self, pow_zero, pow_one, bind₁_X_right, mul_comm, ← C_pow,
     xInTermsOfW_aux]
@@ -320,7 +320,7 @@ theorem bind₁_wittPolynomial_xInTermsOfW [Invertible (p : R)] (n : ℕ) :
     show X n = (X n * C ((p : R) ^ n)) * C ((⅟p : R) ^ n) by
       rw [mul_assoc, ← C_mul, ← mul_pow, mul_invOf_self, one_pow, map_one, mul_one]]
   congr 1
-  rw [wittPolynomial_eq_sum_c_mul_x_pow, sum_range_succ_comm,
+  rw [wittPolynomial_eq_sum_C_mul_X_pow, sum_range_succ_comm,
     tsub_self, pow_zero, pow_one, mul_comm (X n), add_sub_assoc, add_right_eq_self, sub_eq_zero]
   apply sum_congr rfl
   intro i h
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -154,7 +154,7 @@ theorem aeval_wittPolynomial {A : Type _} [CommRing A] [Algebra R A] (f : ℕ 
   simp [wittPolynomial, AlgHom.map_sum, aeval_monomial, Finsupp.prod_single_index]
 #align aeval_witt_polynomial aeval_wittPolynomial
 
-/-- Over the ring `zmod (p^(n+1))`, we produce the `n+1`st Witt polynomial
+/-- Over the ring `ZMod (p^(n+1))`, we produce the `n+1`st Witt polynomial
 by expanding the `n`th Witt polynomial by `p`.
 -/
 @[simp]
feat: port RingTheory.WittVector.WittPolynomial (#3355)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Dependencies 8 + 499

500 files ported (98.4%)
206107 lines ported (98.5%)
Show graph

The unported dependencies are